1、在对软件进行逆向工程研究的时候,通常会依照如下几个大的步骤来完成:
一、研究保护方法,去除保护功能。大部分软件开发者为了维护本身的关键技术不被侵犯,采用了各式各样的软件保护技术,如序列号保护、加密锁、反调试技术、加壳等。要想对这类软件进行逆向,首先要判断出软件的保护方法,而后去详细分析其保护代码,在掌握其运行机制后去除软件的保护。
二、反汇编目标软件,跟踪、分析代码功能。在去除了目标软件的保护后,接下来就是运用反汇编工具对可执行程序进行反汇编,经过动态调试与静态分析相结合,跟踪、分析软件的核心代码,理解软件的设计思路等,获取关键信息。
三、生成目标软件的设计思想、架构、算法等相关文档,并在此基础上设计出对目标软件进行功能扩展等的文档。
四、向目标软件的可执行程序中注入代码,开发出更完善的应用软件
软件逆向工程可让人们了解程序的结构以及程序的逻辑,深刻洞察程序的运行过程,分析出软件使用的协议及通讯方式,并可以更加清晰地揭露软件机密的商业算法等。所以逆向工程的优点是显而易见的。html
2、经常使用软件:算法
OllyDbg:经常使用于动态调试程序,没法调试内核,UI功能强大。
SoftICE:工做在ring0态的调试器,经常使用于调试驱动程序,功能强大的命令行工具。
WinDbg:介于上二者之间的调试器,具备图形界面,调试主要经过命令来进行。
IDA Pro:反汇编软件,用于静态反汇编,带有较弱的动态调试功能。
UltraEdit:16进制编辑器,可用于直接修改可执行文件,也可用于常见语言的变成工做。
虚拟机:防止被调试程序破坏物理机的内核及操做系统。架构
3、资源链接编辑器
http://www.freebuf.com/articles/network/167128.html 没事儿下个副本吧?逆向新手踩坑指南
工具
http://www.freebuf.com/column/157275.html 逆向新手踩坑指南之爬登山能锻炼身体 加密
http://www.freebuf.com/column/158790.html 逆向动态调试值OIIydbg
spa
http://www.freebuf.com/column/157939.html 逆向神奇IDA的使用
操作系统
http://www.freebuf.com/sectool/75529.html 逆向分析神器BinNavi开源了
命令行
http://www.freebuf.com/news/topnews/40039.html 走进科学:对七夕“超级病毒”XX神器的逆向分析
设计
http://www.freebuf.com/articles/network/163233.html 经过逆向分析防护挖矿病毒
http://www.freebuf.com/articles/system/53021.html 金玉其外败絮其中:百度杀毒“雪狼引擎”逆向分析