第一章
- 用Process Monitor看问题
运行sample_mal.exe,在Process Monitor中不太好看到文章中的Create File,不过还是可以看到有关信息
因为系统是win10 的,然后就找到启动文件夹
C:UsersvolcanoAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
的确有传说中的0.exe
这个0.exe和之前的sample.exe的确完全一样
- 注册表
和开机启动有关的注册表项
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion
这两个路径下,包括“Run/RunOnce/RunServicexOnce/RunServices/RunOnceEx”五个子项
同时我的文档目录下的确也有
但是貌似注册表中没有
- 逆向工程
4.静态分析
IDA打开
- 动态分析
process monitor
Ollydebug观察
0040100——应该是起始位置
- 常见的汇编指令
其中不太常见的是lea
TEST
其他就要了解一下:参数存放在栈中。
要学会从汇编代码想到C语言代码
- ollydebug 打开sample_mal.exe
查看其中的所有模块
函数类型只有Export和Import
在Export上设置断点
第二章
内存转储
用任务管理器进行文件转储
保存在C:UsersvolcanoAppDataLocalTemp中
点击自动用VS打开
但是好像看不到代码——VS自动帮你分析了
然后就是用windbg打开看看
。。。。尴尬了。。。。其实dump文件好像就是这个样子的
要看详细信息要在log文件中看
实时调试
用ollydebug
UPX
加shell前后的区别
明显右边的规整一些
而且可以通过流程图来看看
用ollydebug分析
循环块
找到popad
ollydump解压缩之后得到的文件和原来的一样
用aspack
基本方法也是找到和pushad对应的popad
不过这个比较难,需要硬件断点
- 原来
- 设置硬件断点之后,运行到断点处,Ctrl+A——重新分析
第三章
http://07c00.com/tmp/FreeBSD_8.3_binbook.zip
http://07c00.com/tmp/Ubuntu-12.04_binbook.zip