|
C++逆向基础教程
1 M, t6 E) ]: ^( j# B( b9 A 课程暂定32个课时,后面可能根据课程的需要会进行相应的修改,课程中用到的工具主要有三个:Microsoft Visual C++ 6.0,Ollydbg(OD)和IDA。 ) T7 N. H3 a2 Z6 p) G, a. T( d
& K5 Y' D$ l" R/ f5 G! z
一、动态调式工具及静态分析工具IDA的介绍级基本使用. y* d8 R1 M, x( G# Y! [1 V
(1)动态调式工具
3 X" X$ v- Y9 g @& f% ~' R# p y a、Microsoft Visual C++ 6.0
# X1 D2 @+ Q- w2 G; w; I [ b、Ollydbg(简称OD)9 w, x# O1 ]2 M( i' c( h K7 p
c、实战
: A, m% U& K: E3 N' K(2)静态分析工具8 k# G8 F* S6 l: ~
a、IDA基本使用
/ w \! {; `! p" o b、实战
* \- Y% |3 t N) B2 t- w二、汇编基础知识学习
! \2 {5 ]8 H- B% ~& m; Y- A7 s" A三、通过一个简单的程序讲解VC6.0调式器
" c# V1 U9 D2 H: ]9 i四、C++中基础数据类型在内存的表现形式' ^) q7 P) `% A8 G
五、了解C++ 启动函数及OD中定位main函数
7 T" U) ^) n5 Z0 ]六、VC6.0编译器优化技巧
- n+ B9 e0 R6 n4 u5 U, p/ H七、基本表达式的识别与优化原理 4 w0 V' }; b4 Q) o4 f" p% q9 S) t
八、模运算的识别与优化原理
+ _ ?9 n$ t+ A9 i九、反汇编中识别if-else
/ P- E9 u0 ~: j十、反汇编中识别switch-case语句
2 w8 Z' ^+ w( i- s十一、识别复杂的switch-case语句0 V* d, M, ^2 J1 q
十二、反汇编中识别C++循环语句$ G& H6 D$ \4 N2 M$ B+ P
十三、VC6.0编译器对循环结构的优化
+ _ S+ \& Y3 r" ?9 i十四、函数调用方式讲解0 Y+ A( @' m. S& u* y3 }
十五、使用ESP或EBP寻址
1 z8 Q. k0 n- ]/ L' V# B' x: [十六、函数参数传递
- l v$ ]& T' z/ k! S T十七、通过反汇编清楚传值、地址、引用的实现: X2 ~ S3 ? c& s# ~! y& Z
十八、函数返回值' Q3 J, e8 }1 i4 [& I+ n
十九、初程序员在函数调用中常犯的错误及函数调用总结及
( b. [9 g, K+ d/ d十二、变量在内存中的位置
& A+ I; I `* O& {) \/ P. ]+ V二十一、数组级指针形址
$ V2 G9 l1 _% C) y* R) H. T+ P二十二、结构体和类
4 q; P+ O5 o @9 k. C2 ^9 Z; G二十三、C++对象内存布局
# m: p' k8 j0 s4 Q2 O) w! }% L6 W二十四、内存对齐
# X2 |$ W/ M, e' t8 |# k二十五、在反汇编中识别C++类
8 ?# U+ f: W2 g" C- P3 L二十六、利用RTTI识别类3 K+ \+ X! ~1 T5 i6 Q! @- O, F; V
二十七、构造函数和析构函数识别8 T b4 ~" B7 R A. ?6 ?
二十八、通过反汇编了解虚函数实现原理' C' l& B' K2 N9 ?% l; Q$ b9 j1 G7 ^
二十九、从内存角度学习继承和多重继承
$ `1 _9 ^4 d, q. b% o/ H三十、异常处理。
4 R5 _' ^: I2 l: X2 {三十一、CreakME算法分析。) N; |4 l! d6 y
) Z G+ S' o1 Q( {( g$ g
7 k8 ]8 }6 L/ j) a$ E链接:https://pan.baidu.com/s/1jU-tE-onAjOZeOB80wXgRQ $ y* _" c4 a1 z1 m
提取码:8 k* i$ n$ x" x1 p
复制这段内容后打开百度网盘手机App,操作更方便哦8 {4 O, t( V4 t D* c- k
) s/ b) ]& A' M1 q0 {4 C/ W, |
|
|