|
C++逆向基础教程
/ F. ~2 _( ~. x( J 课程暂定32个课时,后面可能根据课程的需要会进行相应的修改,课程中用到的工具主要有三个:Microsoft Visual C++ 6.0,Ollydbg(OD)和IDA。
7 N" s: }! i. a; B. I: O
* _5 l+ M1 F: }+ Q% G一、动态调式工具及静态分析工具IDA的介绍级基本使用7 T1 V# s. e. ~# n7 ^1 z D0 |
(1)动态调式工具5 p3 @! y5 D- r& M
a、Microsoft Visual C++ 6.0
; t0 R$ v- g2 W( h. S. F' R b、Ollydbg(简称OD)3 a' O' W- a+ Y7 C$ b) _
c、实战# M0 u5 U- k. V- Z' _0 k
(2)静态分析工具5 x/ o# ?' e4 j
a、IDA基本使用. C( I4 y/ ~7 C) g2 L
b、实战! ]/ c- k$ J7 Y# H; z$ c2 P
二、汇编基础知识学习$ u% @( O* i. _
三、通过一个简单的程序讲解VC6.0调式器
5 G& u; G! T. S0 v9 \四、C++中基础数据类型在内存的表现形式
6 C+ A% I# G, i, Z1 M7 v五、了解C++ 启动函数及OD中定位main函数" {7 x: K, h0 p" i8 x# T
六、VC6.0编译器优化技巧' C8 f+ A0 [: G9 E3 ?
七、基本表达式的识别与优化原理 , b$ S& K V7 u3 |& K
八、模运算的识别与优化原理7 u- f2 H1 M: s8 A p) P
九、反汇编中识别if-else
3 M* @3 I( x. B十、反汇编中识别switch-case语句
' p# P* [) [) V# J+ i十一、识别复杂的switch-case语句# q2 k* ]$ e m0 l0 c
十二、反汇编中识别C++循环语句
! H1 G: D4 O: e8 F0 M十三、VC6.0编译器对循环结构的优化0 ^' P- ?1 C u- g3 i9 s9 g
十四、函数调用方式讲解% H4 ], L6 ]1 c5 g: ^) s- F
十五、使用ESP或EBP寻址* `- g2 {- z8 s
十六、函数参数传递: _0 n3 E5 u; W& r$ f7 R% u& ?* U( @
十七、通过反汇编清楚传值、地址、引用的实现
/ Y' J& p% K) c- j# R, V十八、函数返回值
5 x: k+ p5 H9 e- k1 J L十九、初程序员在函数调用中常犯的错误及函数调用总结及
/ B' E7 J: Y" |& X3 t& l* n; ^十二、变量在内存中的位置% e. [2 M, }4 ?; p( r" @0 Y
二十一、数组级指针形址. c+ C& P$ q8 V) z& F6 f3 I
二十二、结构体和类3 z# @# ?. n, H. \1 O3 G% {- O: b
二十三、C++对象内存布局
3 N5 ^! c" V- a- r& ^. ]& H二十四、内存对齐
4 y$ C5 W; Y$ k/ F4 f9 |4 j2 g二十五、在反汇编中识别C++类2 a* m+ z0 M2 u0 E/ F* x
二十六、利用RTTI识别类 ~6 R( Q- l) X) D% \2 Z
二十七、构造函数和析构函数识别8 t: F' X+ o2 Z+ ]* \, `
二十八、通过反汇编了解虚函数实现原理$ A0 z _5 P( Z. ?( F6 \' F6 }
二十九、从内存角度学习继承和多重继承* s% X* N' l- a5 p
三十、异常处理。, k: {1 i. |/ U
三十一、CreakME算法分析。! @" `8 G" B% m! O. h
8 Z' n' W! l q5 }5 V
& f$ _2 f/ @* g
链接:https://pan.baidu.com/s/1jU-tE-onAjOZeOB80wXgRQ 3 N7 c& V, @; ]' H7 b# t" ?
提取码:2 g$ ?' R! I4 |9 z
复制这段内容后打开百度网盘手机App,操作更方便哦
% b. r! w# i6 N+ l" H) @( W7 \
* }3 m! ]: j9 }/ ~3 L |
|