震网~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
很高大上的样子呢 沙发!!!好像很厉害的样子!!!! 这个我得收藏了,很有用的说 样本不能共享一下吗 Jasonisgoodboy 发表于 2015-3-23 09:53
样本不能共享一下吗
去csdn上搜一下,上面有 flypuma 发表于 2015-3-24 10:41
去csdn上搜一下,上面有
Thanks!!!!!! flypuma 发表于 2015-3-24 10:41
去csdn上搜一下,上面有
感谢,马上去看看
页:
[1]