x86/x64软件逆向分析入门
你将会学到的:
掌握软件逆向分析相关基础知识、掌握常见的C语言函数反汇编的逻辑和结构、循序渐进掌握x84/x64汇编指令含义以及用途、逐渐拥有从汇编指令代码窥视程序功能的能力
如果曾经想过: 1、这个软件到底是怎么做出来的? 2、我真想看这个软件的源代码! 3、这个软件不够好,我真想把它改一下!
如果你是一个软件逆向工程师,在别人看来如此”神秘“的软件,在你的面前就是一堆源代码。 选择这个课程,赵庆明老师带领你一步步解开软件神秘面纱,让你练就一双可以洞穿一切软件的慧眼......
课程目录:
课前准备&工具安装与配置
软件中的逆向分析与非官方功能扩展(1)
软件中的逆向分析与非官方功能扩展(2)
CPU指令集与最简单的函数
剖析C语言中的经典程序HelloWorld
函数的序言、函数的尾声
逆向生长的堆栈
栈的用途
栈的噪音
函数与参数
整数型数据的指针传递(1)
整数型数据的指针传递(2)
整数型数据的指针传递(3)
整数型数据的指针传递(4)
函数如何获取参数
如何接收函数的返回值
用指针做函数的参数
被废弃的GOTO语句
条件跳转指令(1)
条件跳转指令(2)
条件跳转指令(3)
条件跳转指令(4)
23SWITCH CASE语句(1)
SWITCH CASE语句(2)
SWITCH CASE语句(3)
SWITCH CASE语句(4)
一个简单的FOR循环
复制内存的For循环
计算C语言字符串的长度
插播:使用VC++ 编译汇编源码文件
数学计算指令的替换——乘法
数学计算指令的替换——除法(续上)
FPU:浮点数的乘法和除法
FPU:浮点数的参数传递
FPU:浮点数大小比较
FPU:为何FPU指令用的这么少?
数组:数组的存储结构
数组:缓冲区溢出
数组:缓冲区溢出保护
数组:字符串指针
数组:数组的溢出和溢出保护
数组:多维数组
数组:二维字符串数组的封装
位操作:特定位的操作
位操作:特定位的设置和清除
位操作:FPU上特定位的设置和清除
位操作:位校验
线性同余法的伪随机数函数
结构体:SYSTEMTIME解析
结构体:以数组代替结构体
结构体:用malloc来分配结构体的空间
结构体:结构体的字段封装
结构体:结构体的嵌套
结构体:结构体中的位操作
结构体:用结构体构建浮点数
共用体:生成一个伪随机数
|