|
C++逆向基础教程
2 u* A6 ` R# [9 b; V4 u, `( g1 j 课程暂定32个课时,后面可能根据课程的需要会进行相应的修改,课程中用到的工具主要有三个:Microsoft Visual C++ 6.0,Ollydbg(OD)和IDA。
- \) A5 l6 B# M$ z9 F" D0 z6 s& c
i Y6 E7 S" E8 s5 p' ~. f一、动态调式工具及静态分析工具IDA的介绍级基本使用& g1 X! ]9 b1 B; y8 A/ l
(1)动态调式工具; R6 p1 `/ [5 H" T- Q
a、Microsoft Visual C++ 6.0
9 _4 \# t* H L8 t( V F b、Ollydbg(简称OD)/ }' M/ E' |4 p) a
c、实战
' Z% D! W# b# N1 ~; s6 f g(2)静态分析工具" B7 e/ c5 q2 j/ a. e/ y0 f1 X
a、IDA基本使用
' j% I2 M! e i0 @: M V0 Y b、实战; h7 J6 ~+ I: o" X$ D1 U2 |& M% ]
二、汇编基础知识学习* _- G5 C& V1 D& U2 S+ |- }' [
三、通过一个简单的程序讲解VC6.0调式器) F+ R( A8 y, @; y
四、C++中基础数据类型在内存的表现形式
6 N& N/ J; h* |4 W* b3 G五、了解C++ 启动函数及OD中定位main函数1 \/ C4 a" j$ x0 J; d8 q
六、VC6.0编译器优化技巧- B5 V+ I# c C5 [$ \
七、基本表达式的识别与优化原理
& q8 m$ V8 z; J6 @八、模运算的识别与优化原理: b$ H4 c4 U# F& j$ j+ N
九、反汇编中识别if-else4 O' c$ ]% n7 ]. y% f
十、反汇编中识别switch-case语句2 J5 k9 Z8 m5 Q0 ]5 b' N1 C. R
十一、识别复杂的switch-case语句& q9 s! k" I) f
十二、反汇编中识别C++循环语句0 p+ K! y+ w9 M
十三、VC6.0编译器对循环结构的优化( \: w, ^& k n
十四、函数调用方式讲解
& A! q9 o8 _, a' _十五、使用ESP或EBP寻址
! Y- \; a; L8 `6 ]4 V) s" o/ ^. V十六、函数参数传递9 r5 J% F% ^$ L- s, ~' E3 e+ t! H
十七、通过反汇编清楚传值、地址、引用的实现. e8 T7 j# @% {6 Y: y
十八、函数返回值
% ~- t5 j+ O9 M/ d1 ^4 c0 U, g十九、初程序员在函数调用中常犯的错误及函数调用总结及2 @% J/ H8 ?( K% v2 b Q( z
十二、变量在内存中的位置) m% ^7 n7 {( K8 B# T6 j
二十一、数组级指针形址) o6 v) S4 U0 B
二十二、结构体和类
5 U3 N: ]" n& ]; z7 }二十三、C++对象内存布局* {9 R$ J: P, F" k& e
二十四、内存对齐
; I& R+ E: y/ S& Z6 r" T1 \8 a二十五、在反汇编中识别C++类
+ K5 K1 x! a4 S. e二十六、利用RTTI识别类
5 h; m9 r6 ^( O二十七、构造函数和析构函数识别# G1 K3 F: v. x" x, k7 A6 e; M
二十八、通过反汇编了解虚函数实现原理+ J0 o8 J3 _# N
二十九、从内存角度学习继承和多重继承
. @+ i1 e* z3 ~: {: s3 m三十、异常处理。) N+ L( Q* G, i5 m; @* T
三十一、CreakME算法分析。
% D: G! u- q/ h6 ?1 U& C2 k& ]+ ^+ ^7 Y* v0 w: R1 W' r
5 B- g; x( j) t! ?* n& M5 [5 _& h链接:https://pan.baidu.com/s/1jU-tE-onAjOZeOB80wXgRQ
% I+ r8 D. W% K* A8 m提取码:
7 \7 M2 B! P' q2 ^, }; f复制这段内容后打开百度网盘手机App,操作更方便哦( {8 ]" `" b: S+ P9 g
( E( k' o: j5 K3 N
|
|