我写这篇博客的原因是想帮助更多想做破解,但是不懂怎么开始的朋友,当时是2003这样,听人家说学破解上网能不用钱,当时我带着一腔热血想做破解,在2016年的时候正式学习破解,很多人告诉我先学王爽写的《汇编》然后再学罗云彬写的《win32汇编》,但是想汇编这种语音非常非常苦涩难懂,光看书是没有一点用,对付考试还行,后面发现一个很老的编译器,所以实践起来非常困难,还有想做逆向和破解这样往往光学汇编并不能做很多事,但是这是基础,让你能做大厦的基础。
逆向分析的应用范围有哪些,我想主要的有几点:
1、病毒行为特征的分析,更好进行反病毒软件的编写。
2、内部算法的了解分析,进行软件行为的模拟。
3、软件的破解,去除各类软件的限制。
4、解密算法,解密各类加密文件。
5、分析其算法,进行各类外挂的设计。
6、在没有源码的情况下,对现有软件进行直接的修改,扩展其功能。
7、分析网络数据包格式,模拟发送网络数据包。
一、第一了解汇编的知识,
推介书是王爽写的《汇编》,视频是小甲鱼的《汇编视频》
了解一些基础指令
EAX 累加寄存器
EBX 基址寄存器
ECX 循环寄存器
EDX 扩展寄存器
ESI 寻址寄存器
EDI 寻址基础期
ESP 栈顶寄存器
EBP 栈寻址寄存器
段寄存器(段寄存器我在这里不是很了解)下面你们去查一下资料
CS
DS
SS
ES
FS
GS
当了解汇编之后
实践汇编知识加深记忆,这里推荐比较方便的编译器是
[VS2010搭建汇编开发环境win32和x64]
当能熟练读汇编知识后
二、学习小甲鱼的《OD视频》 掌握OD的使用方法学习小甲鱼的OD的时候
里面有比较重要的一点,当你读汇编的时候,只是脑袋里面有印象你知道这些指令,所以不算掌握指令,我推介我用的笨拙的方法加深印象
里面有很多指令,你一下子不会学到比如 rep,cld,shr,movq,lea 等指令他们不会再王爽写的《汇编》里面没有的,这个时候你就百度一下怎么使用
三、当你掌握这些你就能做一些简单的破解,有很多都是带网络验证的,带壳的软件,这个时候推介你找《恒大的视频》,上面有网络验证的知识学习
四、.学习逆向如果你在window平台下面要掌握Windows 的PE结构,这个时候就推荐你看《Windows PE权威指南》 ,书的内容太多了,大概了解一下,导入表,导出表这些知识,在网上找小甲鱼的《PEinfo》的程序,照到抄几遍你就知道里面PE结构了,但是这本书里面有说PE灵活运行,这些还是要掌握的
五、做逆向要做到逆向工程的话或者更厉害的情况,就要会编程,学好C语言和各种高级编程和各种工具。
六、找相关项目练手的项目,我在学习过程中找练习的资料也是短板。
七、这里推荐几本书《加密解密》第三版,
逆向工程权威指南(丹尼斯著),
逆向工程核心原理(李承远 )
八、
C语言:
用C语言开发,得学习STN32,这个就单片机行业
C++语言:
MFC框架,比如做一些音频图像视频等比较底层的使用,这个框架比较少用了,一般都是在大公司里面才有
C#语音:
用的比较多的.net 技术
PC端用的是WPF框架
web端用的mvc框架
网站和网页前端前端开发:
用的语言是html + css + jquery +javascript , 屏幕适配用的bootstrap框架
手机2D游戏:
用的是COCOS2D-x的框架(语言用的是C++)
苹果开发:
用Swift语言和objective-c(用的编译器是Xcode)
安卓开发:
用的java语音(用的编译器是android studio)
如果学逆向你有正向开发经验,会比较好,但是没有也不要紧
最主要的多实战,多练,多想。
注释:我也是一个菜鸡,也是在摸索学习当中,如果这里有不足和那里说的不到位的大家能加我QQ(194672747)群讨论一下,欢迎大家加群,讨论各方面的知识。