|
C++逆向基础教程
$ C1 v/ b$ ^$ j3 y3 J, @ 课程暂定32个课时,后面可能根据课程的需要会进行相应的修改,课程中用到的工具主要有三个:Microsoft Visual C++ 6.0,Ollydbg(OD)和IDA。
6 J& X6 H0 J L9 W( P* P
+ M6 z; b& S5 D) W, v3 x8 x% c$ u一、动态调式工具及静态分析工具IDA的介绍级基本使用4 k! M8 _5 S! F
(1)动态调式工具- k( E& {8 X( J& U1 Z i$ n
a、Microsoft Visual C++ 6.0
! {+ G/ {. u9 V+ ?) w b、Ollydbg(简称OD)9 [7 q% O: T( {9 C" u) a" u$ l# S) }
c、实战, Q4 q+ y5 v$ P; Q0 Y2 E3 R' C
(2)静态分析工具
- l3 A* k4 f( `6 H; j a、IDA基本使用
9 |! V4 `+ M% s. ^1 } b、实战7 B& ^9 y( R( K0 P
二、汇编基础知识学习- m5 X5 ^& s6 V3 q, ?% K7 m; M6 \
三、通过一个简单的程序讲解VC6.0调式器 Y' e* P# c: Q2 r: N
四、C++中基础数据类型在内存的表现形式
: ^6 T) G+ e+ A7 T2 }0 m五、了解C++ 启动函数及OD中定位main函数
8 d+ J1 s! U# A8 ]- U; n2 w% _: b7 s- \! l六、VC6.0编译器优化技巧
2 R+ n$ Q+ m& ?/ @七、基本表达式的识别与优化原理
# T" g; n4 c( s: v" J3 G: ?八、模运算的识别与优化原理! `: o' V N) ~; Y K n
九、反汇编中识别if-else
- R4 ]4 g3 b* U. w+ p6 X- f: A十、反汇编中识别switch-case语句7 f6 f4 ~/ k6 r4 q" P7 D5 D) B' H, b
十一、识别复杂的switch-case语句$ Y9 v1 i9 I: a& q
十二、反汇编中识别C++循环语句5 ^& @6 ?6 d5 a, `
十三、VC6.0编译器对循环结构的优化6 i/ m8 W/ ~7 [2 q( Y( F
十四、函数调用方式讲解) X/ b( a( w5 O! |+ F
十五、使用ESP或EBP寻址7 c% ], D# e+ s. A, [
十六、函数参数传递% d `( j$ {" C5 n& y
十七、通过反汇编清楚传值、地址、引用的实现
" y( G& B3 d8 }% W# E/ z. k十八、函数返回值# ]# u0 K! ?# f4 `8 i. t% f1 }; W
十九、初程序员在函数调用中常犯的错误及函数调用总结及" A. _ j! \* n$ I9 p* L
十二、变量在内存中的位置
3 X3 f w" ?& h( I. Z二十一、数组级指针形址* ]/ f) o1 o+ m' J
二十二、结构体和类
% c0 a! V# E) j* G3 V二十三、C++对象内存布局
- j& r$ R3 a# s% K+ e( b+ @! V+ c二十四、内存对齐; z7 ~; C0 Q0 f2 |' x- c0 e
二十五、在反汇编中识别C++类
8 ^8 N5 Z# y* n7 J. k( a9 P二十六、利用RTTI识别类
5 d4 L7 c9 j+ e+ O: R& ]6 p( {2 A二十七、构造函数和析构函数识别( S, ?3 N0 x6 S+ D
二十八、通过反汇编了解虚函数实现原理8 v/ Y5 s, O0 Q, P0 \
二十九、从内存角度学习继承和多重继承) q. l5 W4 X W; p
三十、异常处理。 N+ J1 t5 s% j! l" c, S5 [9 @
三十一、CreakME算法分析。
7 C$ x9 y- R7 }, D
+ p: o5 u) E& s! w% ?1 m: P; k8 z
链接:https://pan.baidu.com/s/1jU-tE-onAjOZeOB80wXgRQ
- t3 ]2 g# v5 {提取码:
4 d/ Z' _# W o4 t+ x0 N复制这段内容后打开百度网盘手机App,操作更方便哦/ X$ g% i" _" x- e* f, i4 s2 r
- X0 o, M/ F9 j$ ^) G+ N0 `
|
|