|
C++逆向基础教程/ n$ G0 H3 }/ x% q+ A
课程暂定32个课时,后面可能根据课程的需要会进行相应的修改,课程中用到的工具主要有三个:Microsoft Visual C++ 6.0,Ollydbg(OD)和IDA。
& H z% ~* Y2 o) \) i
! R' \& j! o* X2 b# @: o5 v3 @一、动态调式工具及静态分析工具IDA的介绍级基本使用
. U$ V! y4 ]9 h% l6 h(1)动态调式工具: T/ N8 C$ Y; {# L, g
a、Microsoft Visual C++ 6.0
b( s& _. V) G9 Z* q u b、Ollydbg(简称OD)* i# ]8 h% R6 x: `7 B
c、实战9 f7 r; @+ w7 ^6 Y4 q, _
(2)静态分析工具
0 |$ r' ~' w# c, U W a、IDA基本使用
j9 X5 W y. [" g" S1 c5 l8 y b、实战+ P& s% R0 u* s
二、汇编基础知识学习
! l5 @1 S3 T# K) s7 }三、通过一个简单的程序讲解VC6.0调式器3 j( }$ p- s6 v; K+ _9 }" I
四、C++中基础数据类型在内存的表现形式
9 |: y4 j1 ^) k7 Z+ f, q五、了解C++ 启动函数及OD中定位main函数
2 m1 f( F6 u: Y3 r六、VC6.0编译器优化技巧5 R! L }. H* A. F7 P' \
七、基本表达式的识别与优化原理 5 `. c3 K8 ]( Q3 P% ], t
八、模运算的识别与优化原理
3 f2 F2 j3 D: V九、反汇编中识别if-else% s+ ?# f' e5 h0 S4 b B# P$ `( E0 v
十、反汇编中识别switch-case语句+ Q8 q( _7 i: ]. f' v, |
十一、识别复杂的switch-case语句
& Q) O, h1 ~0 S) `十二、反汇编中识别C++循环语句
( J$ F# C6 V, @8 w) B9 H十三、VC6.0编译器对循环结构的优化
. v7 O" D' P3 d( o1 \$ N% S十四、函数调用方式讲解
$ {! l( ?' @8 x/ R十五、使用ESP或EBP寻址
. X; T5 _) J: U3 M: u& ?6 q0 v十六、函数参数传递
2 ?9 w; i; M$ ?, J# a! E1 v* R. D十七、通过反汇编清楚传值、地址、引用的实现8 v( e8 C9 y/ `) @9 q2 M- Z, n
十八、函数返回值$ s. w1 J0 X2 u7 ?$ e' Q
十九、初程序员在函数调用中常犯的错误及函数调用总结及
. B; P8 D$ @2 R' p; H9 j十二、变量在内存中的位置
- t; @3 z) @6 Q2 r# }/ @. X$ H. y* b9 ]二十一、数组级指针形址
# q% w% U9 ?8 @( [9 Z二十二、结构体和类
! L0 z/ L8 K1 |) D: o. p+ G二十三、C++对象内存布局
$ n5 a) T" K6 | H' H二十四、内存对齐
6 v: \% n2 l0 {8 m+ P0 x0 l3 t [. V二十五、在反汇编中识别C++类5 @$ L4 d! b1 A$ A% c1 \
二十六、利用RTTI识别类+ N0 d+ B. v1 F D! ^* J
二十七、构造函数和析构函数识别
# w( e* D' u* x0 d: Z二十八、通过反汇编了解虚函数实现原理
9 n: j" X: E' {( [二十九、从内存角度学习继承和多重继承. u8 }" g% |, F u2 J) X- G- c
三十、异常处理。
j, ~! R$ G& o$ Z* c三十一、CreakME算法分析。
# O/ o* ]- C# ^$ o6 q. I) F
( c/ E9 \; r1 q7 q' L$ p+ F1 a# n% n* c" A& f: Q
链接:https://pan.baidu.com/s/1jU-tE-onAjOZeOB80wXgRQ & v7 c" q/ K+ W- ]7 {/ n
提取码:+ R/ [' q) ]; D* U; r+ w" d
复制这段内容后打开百度网盘手机App,操作更方便哦6 O a7 N+ o( y8 _7 R+ U
2 g1 m% Q5 `6 A' Y2 P
|
|