|
C++逆向基础教程
, u6 ]7 X) b* [' C$ l 课程暂定32个课时,后面可能根据课程的需要会进行相应的修改,课程中用到的工具主要有三个:Microsoft Visual C++ 6.0,Ollydbg(OD)和IDA。
; E3 g/ q2 `0 ?1 j5 H' x! e0 F
一、动态调式工具及静态分析工具IDA的介绍级基本使用0 p3 P$ v1 O8 b2 I! }
(1)动态调式工具
6 o) h/ T4 d8 P a、Microsoft Visual C++ 6.0( n' v4 i' z" X' ]2 n, H3 W
b、Ollydbg(简称OD)1 F- z5 Q) v$ a% V" W' ?: W* n
c、实战
( D% B/ h3 ]; z0 b4 f(2)静态分析工具
. H+ V4 P. Z& Y$ J a、IDA基本使用
) l0 c# k3 H* r% \: @ b、实战
% t7 I' U) N$ u2 [" N7 a0 m7 I/ K二、汇编基础知识学习. e- h" b% z+ m; D$ J3 a
三、通过一个简单的程序讲解VC6.0调式器: o$ K- l* ^( ]5 D+ a' {0 v9 o
四、C++中基础数据类型在内存的表现形式: F& \; [' u( n' L+ P5 F5 [1 s
五、了解C++ 启动函数及OD中定位main函数
8 F8 e' ~3 b- H4 q& F: Z六、VC6.0编译器优化技巧
R0 Y8 J1 m( O" L' E! Y8 u七、基本表达式的识别与优化原理 ; ?# g8 Q o& ^' S7 b% C) T
八、模运算的识别与优化原理+ p: y% b1 W2 F, ~1 {, Y6 t
九、反汇编中识别if-else
! ~% W* ?7 k. a十、反汇编中识别switch-case语句$ F+ r/ U9 z0 ?( x$ A# _& n
十一、识别复杂的switch-case语句
) h, X& S0 K$ ]& @5 O3 B8 k十二、反汇编中识别C++循环语句3 U) ]( i; ?; r" \% m* e/ ~. S5 _
十三、VC6.0编译器对循环结构的优化
5 I- q* U$ V) A& ~, W/ A十四、函数调用方式讲解
5 q) A- M6 F* Y+ z1 {: Q% k# q十五、使用ESP或EBP寻址
+ `3 D3 s1 U2 s4 R十六、函数参数传递+ V% t( ?" i2 ?4 t
十七、通过反汇编清楚传值、地址、引用的实现
8 j& p; j$ f6 x& Y+ f4 q1 E十八、函数返回值
/ X N* W' R, x d2 R) s" H, D十九、初程序员在函数调用中常犯的错误及函数调用总结及$ S' B0 g. O; |, I
十二、变量在内存中的位置
7 Z9 ~9 S9 [% t- d+ c二十一、数组级指针形址" d" H/ S) f* k+ K* I
二十二、结构体和类& ^1 f' `$ s3 w- B! y
二十三、C++对象内存布局
0 Q% q) ^" a" F6 o二十四、内存对齐/ x P1 f6 G" M2 i% h* A( k
二十五、在反汇编中识别C++类
' h6 @$ Z! r; W' \二十六、利用RTTI识别类# q! n/ x: Y7 H- e" f8 u
二十七、构造函数和析构函数识别& u& S% F# x' Q; O5 M- `
二十八、通过反汇编了解虚函数实现原理( C! M$ h, J5 A" M$ q/ q) W( G
二十九、从内存角度学习继承和多重继承" d% j8 F1 r' Z$ L, D
三十、异常处理。' h: d) t1 v% D7 c6 S) o8 I. `
三十一、CreakME算法分析。
* ~, O7 l5 Q) g! u
& I& O3 E' o% `. [0 {: ?( \
; E. D4 R, C( U" K' i链接:https://pan.baidu.com/s/1jU-tE-onAjOZeOB80wXgRQ % ^+ {- J9 ]+ h+ W, }
提取码:
4 ~* J8 |: {1 X' E复制这段内容后打开百度网盘手机App,操作更方便哦- E$ G9 d" d! l& g1 W/ i( t8 y/ O
) K, J% Q2 q# c0 K7 d
|
|