-
-
[推荐]如何成长为全栈逆向工程师
-
发表于:
2019-1-7 14:51
5827
-
如果了解了C,X86,编译原理,怎么写模拟器,JIT的运行,以及内核的构造,就需要20分钟就行了,比如猫神。
第一年:
- 阅读 《Reversing:逆向工程揭密》
----了解常见的工具使用
----了解逆向工程代码
----了解逆向工程文件格式
----了解常见的代码防护如何运行
----编译器如何运行的,等等
2.学习反汇编
----编写C代码,编译,反汇编,然后逆向还原回C代码
----让你的朋友编写相关代码,然后你执行上述操作,让他检查下
----重复操作,熟悉常见的算术操作与类型
3.逆向一个游戏
----找一个老的游戏,年份老点的,方便搞。
----通过逆向工程了解他的储存文件格式,编写相关的解密代码
----通过逆向工程了解他的模型构造,修改相关文件渲染等操作。
4.阅读《编译原理》
----编译器如何工作
----词法解析
----解析代码
----系统如何运行
----生成和混淆代码
----回收机制
5.编写一个源码-源码的编译器(PYthon->Ruby等)
----选择源码语言,Python
----选择目标语言,JavaScripy,Ruby
----思考如何来进行转换,很有趣,不是很难。
6.编写一个反汇编工具
----编写一个反汇编工具到字节码或者机器码
----不要选择X86,用Mips,Arm32等
第二年:
编写另外的一个反汇编工具
----逆向到反汇编层代码
----最好选择C
2.阅读《C语言逆向编译技术——Reverse Compilation Techniques》
3.编写一个字节码反汇编工具
----编写一个Android's Dalvik或者.NET的
----从控制流,goto,if-else开始
----基于图论进行重建流程
4.编写一个机器码反汇编工具
----从机器码->伪C代码
----最好使用arm,Mips
5.阅读 OSDev wiki
----多阅读几遍
----再多阅读几遍
6.编写一个你自己的Kernel
----在显示器上展示一些文字,键盘输入,基本图形
----用C来编写
7.再去阅读几遍 OSDev wiki,因为你感觉到知识点欠缺了
8.重新去写你的Kernel
----换一个语言
----多思考如何设计,多思考如何运行
9.编写一个MicroKernel
----试试采用Rust来编写
----同上
第三年:
1.编写一个解释模拟器
----编写一个游戏的,比如NES,SNES等平台
----清楚明了的来编写这个模拟器
2.编写一个反汇编模拟器
----类似IDA吧
3.编写一个黑盒模拟器平台,运行多种平台
----如兼容NES,XBOX等等
----如XBOX
更多内容请前往:https://bbs.pediy.com/thread-248870.htm
鸣谢 :
翻译 鬼哥
整理 r0ysue 版主
原文链接在此
原视频在此
原幻灯片在此
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2019-3-8 19:04
被CCkicker编辑
,原因: