使用Scylla辅助分析API Resolving
本帖最后由 BeneficialWeb 于 2025-2-7 16:41 编辑# 使用Scylla辅助分析API Resolving
恶意样本常见API Resolving方式之一是使用LoadLibrary、GetProcAddress两个Windows API,如下图sub_300060D0函数所示:
GetProcAddress函数的第二个参数byte_300228A8字符数组也就是相关函数名称,如下图所示通常是运行时解密的,不利于静态分析。
接下来进入正题,我们首先记录相关全局变量的起始位置
```jsx
api resolving function : sub_300060D0
start address: 3016DCB8
```
向下滚动,
可以猜测动态API解析的结束地址为3016DE18
```jsx
end address: 3016DE1C
size = 0x3016DE1C - 0x3016DCB8 = 0x164
```
接下来交叉引用,找到调用函数sub_300060D0的地方,分别有5个地方,多数在winmain函数里,一处在线程函数里。
来到winmain函数可以看到相关调用
接下来使用x32dbg运行到winmain函数
在第一处调用后的地址300078BE下断点
接下来在内存窗口转到start address 3016DCB8
F5 运行起来断下后就可以看到相关结果
从内存窗口中可以看到相关的模块基址以及API地址
此时使用Scylla Dump进程 可以看到找到了原始IAT地址
当然程序使用的API不止这些,还有API Resolving的。
接下来使用之前记录的地址3016DCB8和大小16C,填入Scylla,获取Imports
可以看到Imports的数目增加了
修减掉无效的Thunk
接下来就是Dump,Fix Dump. 返回sub_300060D0就可以看到函数指针自动命名了。
经过Scylla 修复后的文件也就更容易静态分析了,sub_30001010对比如下, 左侧为未修复,右侧修复版本:
完结!
看看,支持一下 Scylla 1.0在哪里下载 最新的不是0.98吗 麻烦共享一下 支持原创 170077000 发表于 2025-2-7 18:16
Scylla 1.0在哪里下载 最新的不是0.98吗 麻烦共享一下
这是集成到WinArk的右键菜单{:1_907:}
Scylla 1.0麻烦共享一下 多谢分享,,mark{:1_921:} 好好学习 学习了,感谢楼主分享!!! 有点意思
页:
[1]
2