BeneficialWeb 发表于 2025-2-7 16:42

使用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对比如下, 左侧为未修复,右侧修复版本:



完结!

探玄珠 发表于 2025-2-7 16:50

看看,支持一下         

170077000 发表于 2025-2-7 18:16

Scylla 1.0在哪里下载   最新的不是0.98吗   麻烦共享一下

qqhuog 发表于 2025-2-7 18:31

支持原创

BeneficialWeb 发表于 2025-2-7 18:33

170077000 发表于 2025-2-7 18:16
Scylla 1.0在哪里下载   最新的不是0.98吗   麻烦共享一下

这是集成到WinArk的右键菜单{:1_907:}

wauiiu 发表于 2025-2-7 19:41


Scylla 1.0麻烦共享一下

lduml 发表于 2025-2-8 10:21

多谢分享,,mark{:1_921:}

redapple2015 发表于 2025-2-8 11:49

好好学习

liltn 发表于 2025-2-8 17:15

学习了,感谢楼主分享!!!

BrutusScipio 发表于 2025-2-9 00:18

有点意思
页: [1] 2
查看完整版本: 使用Scylla辅助分析API Resolving