有趣的二进制

第一章

  1. 用Process Monitor看问题
    运行sample_mal.exe,在Process Monitor中不太好看到文章中的Create File,不过还是可以看到有关信息

    因为系统是win10 的,然后就找到启动文件夹
    C:UsersvolcanoAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
    的确有传说中的0.exe

    这个0.exe和之前的sample.exe的确完全一样
  2. 注册表

和开机启动有关的注册表项
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion
这两个路径下,包括“Run/RunOnce/RunServicexOnce/RunServices/RunOnceEx”五个子项

同时我的文档目录下的确也有

但是貌似注册表中没有

  1. 逆向工程

4.静态分析


IDA打开

  1. 动态分析

process monitor

Ollydebug观察
0040100——应该是起始位置

  1. 常见的汇编指令
    其中不太常见的是

    lea
    TEST

其他就要了解一下:参数存放在栈中。
要学会从汇编代码想到C语言代码

  1. 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

原文地址:https://www.cnblogs.com/volva/p/11814410.html