(完整版)软件逆向分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 构结至甚数参和数函多很出别识器译编的序程标目据根能 。注标动自且并体
• 。能功级高多很持支及以器试调单简建内,名改持支
反汇编器 - W32DASM
• W32Dasm具工编汇反的级量轻个一是 • 快很度速时编汇反行进件文型小对 • ,手上易容便方用使是点优的它缺点是进件文的大对以难
。译编反行
目录
调试器和反汇编器
• 逆向工程的研究对象:特定硬件平台上的 可执行二进制代码
• 逆向工程的研究手段:跟踪与调试 • 两种关键工具:调试器和反汇编器
调试器
• 器试调(Debugger):序程标目的试调被载加 (或进程(。试调和踪跟态动行进它对并,
• 与试调码源的区别:可制进二的序程对是 。试调行进接直码代行执
• 有能功器试调的带自中境环发开言语种各 。要需的程工向逆任胜以难,限采用专门 的调试器
常用调试器 - SoftICE
• Ring 0级内核调试器; • 通过网络进行远程调试 ; • 支持单机的、源程序级的调试能力; • 支持Windows NT/9x,功能强大;
常用调试器 - OllyDBG
• OllyDBG(称简ODBG)工作在Ring3下,注需无 ,用使费免册最新是本版1.10。书中使用 ODBG讲例实行进解。
1. 逆向工程概述 2. 调试器和反汇编器 3. 逆向分析实例 4. 断点 5. 专用工具
实例1 - 直接内存查看
Win32进程内存空间
• 当进程据数种各,后始开和资源以会 认默。存主到射映来起织组构结定一 ,下况情Win32可程进户用个每上统系 有占以2GB统系作操,间空址地有私的 的下剩有占2GB间空址地。
软件逆向工程
• 法无户用,同不件软源开的码代源放开与 无者或,件文行执可的型成译编经已改修 知获法程序的部内算法。
• 逆向工程的中程工件软于似类“盒黑”。试测 • 助借要需跟踪调试手段代器机制进二从,
。序程析分始开码 • ,反相程工件软与程过作工这就是“工向逆
程”中词名个ห้องสมุดไป่ตู้“向逆”。源来的
逆向工程的主要应用
• 逆向工程最早的应用是软件破解。 • 合法性至今存在很大争议。
Windows End-User License Agreement
总结
• 逆向工程的分析方法的型成经已个一从是 高更在后最期以,解分下向步逐始开品产 。节细术技的品产出象抽上次层的
目录
1. 逆向工程概述 2. 调试器和反汇编器 3. 逆向分析实例 4. 断点 5. 专用工具
实例1 cont.
• 序程标目行运BS.Crackme.2.exe • 信册注个两这号列序和名户用入输于用别分,框本文个两有上口窗主
名户用入输中框本文名户用在。息newbie码册注个一入填便随面下, 11223344击点,check,钮按crackme册注的入输示提框话对个一出弹 。误错码
实例1 cont.
• 式格件文的开公不析分、议协等; • 分析Windows或Mac,序程动驱件硬的上台平
编写linux下的相应驱动; • 能潜的品产子电费消掘挖; • 的化档文未统系作操掘挖API系多更现发,
;幕内统 • 证取罪犯机算计
逆向工程的历史
• 最早出现在20世纪80年代,APPLEII主机上 的游戏破解。
逆向分析
1. 逆向工程概述 2. 调试器和反汇编器 3. 逆向分析实例 4. 断点 5. 专用工具
逆向工程
•逆向工程,Reverse Engineering, R.E. •工程(Engineering):从原理到产品 •逆向工程的基本思想:从产品到原理(再到产品)
军事中的逆向工程
USA, Boeing B-29
• 软件破解(cracking):破解的件软版权措护保 制限无以可就用费权授付支不户用让,施 ;能功部全的件软用使
• 序程意恶和毒病(malware)析分:、毒病析分 决解出计设并害危和制机播传的序程意恶 法办;
• 析分洞漏统系:分析漏洞原理,设计补丁 程序或者编写利用程序(Exploit)。
逆向工程的其他应用
1. 反汇编窗口
2. 寄存器窗口
2
3. 堆栈窗口
4. 转存(dump)窗口
1
4
3
常用调试器 - WinDBG
• WinDBG是微软出品的调试器,以可用于源 代试调核内统系和试调码,还能分析dump 文件,和Windows合结紧密。WinDBG基是 器试调的用使令命于。
反汇编器
• 反汇编的概念:把二进制代码翻译成汇编 助记符。
xor ebx, ebx 汇编助记符
汇编 反汇编
0x33,0xDB 二进制代码
• 这是但,擎引编汇反的单简带自中器试调 限有能功擎引编汇反些,专业反汇编器可 以更好的分析代码。
反汇编器 - IDA Pro
• IDA Pro (Interactive Disassembly Pro)编汇反能,大强能功 项选编汇反的多众有配,集令指的台平件硬种多;
• 开打。框话对闭关时暂WinHEX的上栏具工击点,Open RAM。存内程进的开打要想择选框话对出弹,钮按
1
2
• 中选Primary Memory击点后OK开打BS.Crackme.2.exe程进的 。间空存内
实例1 cont.
• crackme然,码册注出算计名户用过通序程,例特的出给择选意特是 一否是码册注真和码册注假的入输较比码明数函较比串符字用接直后 。码册注的正真的存保时暂中存内除清时及有没后较比在且并,致
• 内程进在会都源资种各和码代的程进 具工看查存内用以可,现出里间空存 字如例息信些一取获以存内程进看查 。等串符
应用程序代码 全局变量
每个线程堆栈 DLL代码
内核与执行体 HAL
引导驱动程序
进程页表 超空间
系统高速缓存 分页缓冲池 非分页缓冲池
00000000
7FFFFFFF 80000000 C0000000 C0800000 FFFFFFFF
USSR, TU-4
军事中的逆向工程
前苏联SVD狙击步枪
国产79/85狙击步枪
软件逆向工程
• ,段手等试调和编汇反过通是程工向逆件软 而从码代行执可制进二的序程机算计析分 。术技的理原现实和节细法算的序程得获
• 象对究研:序程机算计的码代源开公有没, 主要是码代行执可制进二的译编过经经已 如(Win32的上台平PE括包,件文exe,dll 式格件文等(
• 。能功级高多很持支及以器试调单简建内,名改持支
反汇编器 - W32DASM
• W32Dasm具工编汇反的级量轻个一是 • 快很度速时编汇反行进件文型小对 • ,手上易容便方用使是点优的它缺点是进件文的大对以难
。译编反行
目录
调试器和反汇编器
• 逆向工程的研究对象:特定硬件平台上的 可执行二进制代码
• 逆向工程的研究手段:跟踪与调试 • 两种关键工具:调试器和反汇编器
调试器
• 器试调(Debugger):序程标目的试调被载加 (或进程(。试调和踪跟态动行进它对并,
• 与试调码源的区别:可制进二的序程对是 。试调行进接直码代行执
• 有能功器试调的带自中境环发开言语种各 。要需的程工向逆任胜以难,限采用专门 的调试器
常用调试器 - SoftICE
• Ring 0级内核调试器; • 通过网络进行远程调试 ; • 支持单机的、源程序级的调试能力; • 支持Windows NT/9x,功能强大;
常用调试器 - OllyDBG
• OllyDBG(称简ODBG)工作在Ring3下,注需无 ,用使费免册最新是本版1.10。书中使用 ODBG讲例实行进解。
1. 逆向工程概述 2. 调试器和反汇编器 3. 逆向分析实例 4. 断点 5. 专用工具
实例1 - 直接内存查看
Win32进程内存空间
• 当进程据数种各,后始开和资源以会 认默。存主到射映来起织组构结定一 ,下况情Win32可程进户用个每上统系 有占以2GB统系作操,间空址地有私的 的下剩有占2GB间空址地。
软件逆向工程
• 法无户用,同不件软源开的码代源放开与 无者或,件文行执可的型成译编经已改修 知获法程序的部内算法。
• 逆向工程的中程工件软于似类“盒黑”。试测 • 助借要需跟踪调试手段代器机制进二从,
。序程析分始开码 • ,反相程工件软与程过作工这就是“工向逆
程”中词名个ห้องสมุดไป่ตู้“向逆”。源来的
逆向工程的主要应用
• 逆向工程最早的应用是软件破解。 • 合法性至今存在很大争议。
Windows End-User License Agreement
总结
• 逆向工程的分析方法的型成经已个一从是 高更在后最期以,解分下向步逐始开品产 。节细术技的品产出象抽上次层的
目录
1. 逆向工程概述 2. 调试器和反汇编器 3. 逆向分析实例 4. 断点 5. 专用工具
实例1 cont.
• 序程标目行运BS.Crackme.2.exe • 信册注个两这号列序和名户用入输于用别分,框本文个两有上口窗主
名户用入输中框本文名户用在。息newbie码册注个一入填便随面下, 11223344击点,check,钮按crackme册注的入输示提框话对个一出弹 。误错码
实例1 cont.
• 式格件文的开公不析分、议协等; • 分析Windows或Mac,序程动驱件硬的上台平
编写linux下的相应驱动; • 能潜的品产子电费消掘挖; • 的化档文未统系作操掘挖API系多更现发,
;幕内统 • 证取罪犯机算计
逆向工程的历史
• 最早出现在20世纪80年代,APPLEII主机上 的游戏破解。
逆向分析
1. 逆向工程概述 2. 调试器和反汇编器 3. 逆向分析实例 4. 断点 5. 专用工具
逆向工程
•逆向工程,Reverse Engineering, R.E. •工程(Engineering):从原理到产品 •逆向工程的基本思想:从产品到原理(再到产品)
军事中的逆向工程
USA, Boeing B-29
• 软件破解(cracking):破解的件软版权措护保 制限无以可就用费权授付支不户用让,施 ;能功部全的件软用使
• 序程意恶和毒病(malware)析分:、毒病析分 决解出计设并害危和制机播传的序程意恶 法办;
• 析分洞漏统系:分析漏洞原理,设计补丁 程序或者编写利用程序(Exploit)。
逆向工程的其他应用
1. 反汇编窗口
2. 寄存器窗口
2
3. 堆栈窗口
4. 转存(dump)窗口
1
4
3
常用调试器 - WinDBG
• WinDBG是微软出品的调试器,以可用于源 代试调核内统系和试调码,还能分析dump 文件,和Windows合结紧密。WinDBG基是 器试调的用使令命于。
反汇编器
• 反汇编的概念:把二进制代码翻译成汇编 助记符。
xor ebx, ebx 汇编助记符
汇编 反汇编
0x33,0xDB 二进制代码
• 这是但,擎引编汇反的单简带自中器试调 限有能功擎引编汇反些,专业反汇编器可 以更好的分析代码。
反汇编器 - IDA Pro
• IDA Pro (Interactive Disassembly Pro)编汇反能,大强能功 项选编汇反的多众有配,集令指的台平件硬种多;
• 开打。框话对闭关时暂WinHEX的上栏具工击点,Open RAM。存内程进的开打要想择选框话对出弹,钮按
1
2
• 中选Primary Memory击点后OK开打BS.Crackme.2.exe程进的 。间空存内
实例1 cont.
• crackme然,码册注出算计名户用过通序程,例特的出给择选意特是 一否是码册注真和码册注假的入输较比码明数函较比串符字用接直后 。码册注的正真的存保时暂中存内除清时及有没后较比在且并,致
• 内程进在会都源资种各和码代的程进 具工看查存内用以可,现出里间空存 字如例息信些一取获以存内程进看查 。等串符
应用程序代码 全局变量
每个线程堆栈 DLL代码
内核与执行体 HAL
引导驱动程序
进程页表 超空间
系统高速缓存 分页缓冲池 非分页缓冲池
00000000
7FFFFFFF 80000000 C0000000 C0800000 FFFFFFFF
USSR, TU-4
军事中的逆向工程
前苏联SVD狙击步枪
国产79/85狙击步枪
软件逆向工程
• ,段手等试调和编汇反过通是程工向逆件软 而从码代行执可制进二的序程机算计析分 。术技的理原现实和节细法算的序程得获
• 象对究研:序程机算计的码代源开公有没, 主要是码代行执可制进二的译编过经经已 如(Win32的上台平PE括包,件文exe,dll 式格件文等(