将地址解析为函数名称

逆向工程 艾达 恶意软件 蟒蛇 风袋 动态链接
2021-06-16 09:36:54

我有一个恶意软件样本,它包装LoadLibrary& GetProcAddressduo 以动态解析函数。在调用此包装器后,eax立即调用存储在(即函数名称)中的值字符串是加密的,我很难逆转加密算法。相反,我编写了一个 python 脚本,它在call eax提到指令的地方设置断点一切都很好,我从eax动态导入的函数中获取了地址问题是我需要它们可读。我知道如何通过调用将地址解析为 widbg 中的函数名称ln address但是我不想整天坐着把所有的649个导入一个一个地复制到windbg控制台。我查了一下windbg的脚本功能,但我无法编写任何可以完成这项工作的内容。

谢谢

1个回答

我不知道我是否正确理解了您的查询,但是如果您想记录传递给 getproc 地址的函数名称,您可以像这样在 windbg 中记录它们

C:\>cdb calc

Microsoft (R) Windows Debugger Version 10.0.15063.468 X86

ntdll!LdrpDoDebuggerBreak+0x2c:
775605a6 cc              int     3

0:000> bp KERNELBASE!GetProcAddress ".printf \"%ma\\n\",poi(@esp+8);gc"

0:000> bl
 0 e 756c6c81     0001 (0001)  0:**** KERNELBASE!GetProcAddress ".printf \"%ma\\n\",poi(@esp+8);gc"


0:000> g

ImmWINNLSEnableIME
ImmWINNLSGetEnableStatus
ImmSendIMEMessageExW
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CtfImmTIMActivate
CtfImmRestoreToolbarWnd
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LpkPSMTextOut
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ModLoad: 740c0000 740d3000   C:\Windows\system32\dwmapi.dll
DwmIsCompositionEnabled
GetLayout
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ModLoad: 75590000 7559c000   C:\Windows\system32\CRYPTBASE.dll
SystemFunction036
CLSIDFromOle1Class
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ModLoad: 73b70000 73bac000   C:\Windows\system32\oleacc.dll
EventWrite
EventRegister
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BufferedPaintStopAllAnimations

ntdll!DbgBreakPoint:
774f4108 cc              int     3
0:004> q
quit:

C:\>

afaik windbg 也将地址解析为其函数名称

0:000> rM0
calc!WinMain+0x6b:
001316a0 ffd7            call    edi {kernel32!GetModuleHandleWStub (7737ccac)}