恶意代码分析12-2
前置
先收集一下PE看看 字符串也收集一下
有多余的资源节 导出
加载指定的模块 先分析上面sub_40149D函数
sub_40149D下的属性调用svchost.exe 跟进下函数GetSystemDirectoryA 开始检索svchost.exe 文件
关键代码 sub_40132C 函数进行加载指定模块操作
获取指定资源文件 findresourceA 下的name属性 LOCALIZATION Type属性 UNICODE类型 并且为其开辟内存大小范围,在对其资源进行加密 sub_401000函数 并且保存到物理目录下,然后释放内存
继续向下分析main 下判断的函数 sub_4010EA
也可以看的出 前段0x5A4D 0x4550 验证PE文件的头 在检索svchost 。利用函数CreateProcessA挂起方式创建svchost
ReadProcessMemory 对 svchost 进行ebx +8 StackLimit
GetProcAddress的 通过procname属性 “NtUnmapViewOfSection”卸载原本 stack
WriteProcessMemory 向下设置 context eax 在去利用 ResumeThread 恢复进程
分析 LOCALIZATION 的文件
xor 41 也就是 A 解密为源文件
IDA分析对其窗口隐藏激活 重点函数 SetWindowsHookExA 键盘记录 第一标记符 是13 记录键盘 跟进FN 下的sub_4010C7函数
记录键盘基本信息 保存到fileName 属性下的”practicalmalwareanalysis.log”
ZwUnmapViewOfSection释放内存写映射 ->挂起在循环 VirtualAlloc 写进内存-> ResumeThread恢复执行进程