flypuma 发表于 2014-12-24 10:07

震网~WTR4141.TMP分析

前一段熟悉了用户态的API Hook,而震网采用用户态IATHook来实现文件隐藏,所以就拿来练练手,对其进行逆向分析,顺便学学其中的方法。为了躲避杀毒软件,~WTR4141.TMP入口函数首先将整个~WTR4141.TMP文件读入内存,内存中通过调用导出函数1跳转到DllGetClassObject,函数的Hook功能就在此部分完成,下面主要对其进行分析。整个函数的结构如下图所示:

函数sub_10002340加载4132.tmp(病毒主dll),然后解析,完成病毒文件更新。函数sub_100019A0完成Hook功能。从函数中我们可以看到主要Hook了FindFirstFileW、FindNextFileW、FindFirstFileExW、NtQueryDirectoryFile、ZwQueryDirectoryFile这5个函数
IATHook实现如下

PE头+78H就是PE的IMAGE_DATA_DIRECTORY,也就是V4的值78H:输出表V11:导出表地址V5:导出表名称V10:导出表中成员个数v9 = v4 + a1 + 0x24V9:导出表序列号数组遍历导出表的导出名称表,与要Hook的函数名称进行比较v7 = *(v6 + a2 + 12);v8 = a2 + v6;v9 = *(v8 + 16);v10 = (a2 + v7);v11 = (v9 + a2);
v12 = *v8 + a2;V9:导入地址表(IAT)的RVA       V11:导入地址表V8:dll的导入名称表(INT)的RVAV12:导入名称表地址V7:DLL导入表映像文件的名字RVAV10:dll名称if (!lstrcmpiA(lpString1, v10) ){    v13 = *v12;    v14 = *v12 < 0;}找到DLL所在的名称表,保存为v12和v13接着通过DLL的名称表找到HookApi对应的地址在DLL中找到HookDll后,直接将其值修改为自己要执行的API a5
*v11 = a5

我是坏人 发表于 2014-12-24 10:18

很高大上的样子呢

liuning670 发表于 2014-12-24 10:13

沙发!!!好像很厉害的样子!!!!

yyz219 发表于 2014-12-24 12:07

xujiajay 发表于 2015-3-19 10:36

这个我得收藏了,很有用的说

Jasonisgoodboy 发表于 2015-3-23 09:53

样本不能共享一下吗

flypuma 发表于 2015-3-24 10:41

Jasonisgoodboy 发表于 2015-3-23 09:53
样本不能共享一下吗

去csdn上搜一下,上面有

Jasonisgoodboy 发表于 2015-3-24 16:26

flypuma 发表于 2015-3-24 10:41
去csdn上搜一下,上面有

Thanks!!!!!!

xujiajay 发表于 2015-3-26 09:10

flypuma 发表于 2015-3-24 10:41
去csdn上搜一下,上面有

感谢,马上去看看

jaysean 发表于 2015-3-30 12:10

页: [1]
查看完整版本: 震网~WTR4141.TMP分析