逆向工程——体验软件分析

1. 体验软件分析

工具准备:WinHex二进制编译器、ProcessMonitor文件和注册表监控

a. 程序sample_mal.exe

sample_mal.exe
运行程序后,弹出一个对话框,关闭对话框后.exe文件本身也消失
通过ProcessMonitor看一下程序行为:

我们发现他在C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup的位置新建了一个文件0.exe。那么就会导致在系统重新启动的时候,自动的运行这个程序0.exe。在实践的过程中发现电脑中安装的安全软件会提示建议阻止这种在startup中新建程序的行为。但是由于已知本程序不是恶意程序,我们允许这种创建操作。

然后利用WinHex比较两个程序,发现他们的二进制表示一致。我们重启电脑,发现启动后会自动运行0.exe这个程序,即弹出对话框然后关闭后此程序也会自动删除。

此外,我们还发现程序在C:\Users\用户名\Documents目录下还新建了1.exe的程序,他也是sample_mal.exe的一个副本。想要系统恢复原状我们需要删除0.exe与1.exe。

总结一下这个程序做了什么:
1. 修改注册表以便在系统重启时自动运行
2. 将自己复制到startup文件夹,在系统重启时自动运行

附:

1. 什么是逆向工程:
阅读反汇编后的代码,使用调试器分析软件行为。
2. svchost是什么
在做上面实验使用ProcessMonitor看到了大量的svchost,然后就了解了一下相关内容。
svchost.exe是微软Windows操作系统中的系统文件,微软官方对它的解释是:svchost.exe 是从动态链接库(DLL) 中运行服务的通用主机进程名称:Host Process for Windows Services。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以会有多个该文件的进程。
由于计算机性能普遍提高,为了提高系统安全性和稳定性,在最新版本的Windows 10操作系统中,系统不再使多个服务共享1个svchost.exe进程,而会为每个服务都分配一个独立的svchost.exe进程。

参考材料:
1.《有趣的二进制·软件安全与逆向分析》【日】爱甲健二

  1. svchost.exe_百度百科
  2. 源程序:https://github.com/kenjiaiko/binarybook

你可能感兴趣的:(逆向工程——体验软件分析)