前言

不动态分析 静态问题
利用strings 把 EXE 和 DLL 数据信息采集起来
image.png
image.png

可以看到exe 的一连几个函数 特别连续
CloseHandle 关闭打开的对象句柄 ??who
OpenProcess 打开现有的本地进程对象
CreateRemoteThread 创建在另一个进程的地址空间中运行的线程
GetModuleHandleA 加载模块 此模块也必须由进程调用
WriteProcessMemory 将数据写入到指定进程中的内存区域 且整个区域可以访问 或者失败
VirtualAllocEx 在指定进程的虚拟地址空间中保留、提交或更改内存区域的状态。
lstrcatA 开始追加
这样一看真像dll 进程注入 后面还有一些 kernel32.dll Lab12-01.dll psapi.dll explorer.exe可能是恶意代码注入的目标

这个恶意代码样本是如何工作的?哪个进程会被注入? ?

image.png
丢 IDA 分析
跟进第一步 查查第一个函数下的调用 看到是这边会调用 psapi.dll 模块 获取进程信息 并且检索dll导出函数以及变量地址
下面的一些系统API 函数基本是调用线程写
image.png
这样来做就是调用psapi.dll 往下检索 lad12-1.dll 绝对路径来加载 这个dll在任意地方都可以被加载
image.png
从这里开始就是把检索到的lad12-1.dll进行注入 在中间的规里面有个 sub_401000 外部的函数是 EnumProcesses 这里往下走的循环里包含数组类型 也就是这里检索的 sub_401000 里面的 pid 进程的标识符 检测到进行写入
image.png
往下分析 sub_401000 EnumProcessModules->GetModuleBaseNameA 查找 explorer.exe 的进程 和路径 对其进行注入
image.png

在你运行恶意代码可执行文件时,会发生什么?

接下来分析dll 跟进dll 下的 sub_10001030 可以看到 CreateThread函数 引用进sleep(60000) 60 秒调用一次 StartAddress
image.png
跟进StartAddress 也就是每60秒消息窗口弹出 Press OK to reboot
image.png

远程线程注入流程

调用 psapi.dll 中的EnumProcesses得到所有的线程PID 判断出需要的注入的目标,在检索 恶意的dll 对检索到的目标进程写入恶意dll的绝对路径。

你如何能够让恶意代码停止弹出窗口?

taskkill explorer.exe进程中的Lab12-01.dll创建的线程