我想使用Python C类型编写一些可以挂接API调用并且可以用于解压缩可执行文件的东西。目前,我的代码(具有C类型的Python)以挂起状态启动可执行文件,然后使用createremotethread API执行DLL注入。 DLL已加载,代码已成功执行。

我希望注入的代码修补可执行文件,以使其挂钩某些API调用。最终,我想找到代码陷阱,但目前我只是分配虚拟内存(virtualalloc)。我想仅使用Python来执行此操作。这可能吗?

我想因为它可以用C语言完成,所以可以使用Python的C-Types完成。在我的研究中,我看到人们在某些方面使用DiStorm,但我还是想使用Python。我知道以前已经做过,但是我想将一些代码编写为学习练习。寻找方向,欢迎任何指导。

评论

在这里看看我的答案:reverseengineering.stackexchange.com/a/1981/245 ...如果您想修补可执行文件,我个人将通过注入的DLL来执行。但这是一个品味问题。即注入的DLL会完成所有修补工作,但要小心避免加载程序锁定带来麻烦(即不要在DllMain中使用LoadLibrary和好友)。
我计划将代码修补在我注入的DLL的DLLMain中。感谢您的链接!

#1 楼

请查看以下内容:



PyDBG-它是Win Debug API等的python包装器。通过注册BP的事件处理程序,内存执行/读取/写入,堆栈检查等,该框架使人们可以从字面上检查正在运行的过程的各个方面。您可以在调试过程中更改所需的任何内容。


PyDBG的安装-有点陈旧,但可以为您指明正确的方向。 > WinAppDbg-python模块允许开发人员在Windows环境下使用Python快速编写检测脚本代码。方式,而不是手动进行,并将知识整合到脚本中。我曾经使用上述工具来解决您要解决的相同问题,我可以说这些框架做得很好。

首先,您可以BP所有内存分配,保护更改和释放API并检查这些缓冲区-(VirtualAlloc(Ex),VirtualFree,VirtualProtect)。此外,添加WriteProcessMemory并检查刚要写入其他进程(如果是恶意软件)的缓冲区。对于更高级的打包程序,您还可以检查* UnmapViewOfSection API。

评论


还要给github.com/Fitblip/vdb-fork一个外观,而不是PyDBG。

– Stolas
2013年9月2日在7:08

PyDBG很好,但是以某种方式已经过时了,vdb有点前沿,但是学习曲线很陡。在两者之间,您将找到WinAppDbg(上面已经提到的链接)。很好,该站点上的文档和示例将使您可以快速开始编写自己的脚本。

–卡洛斯·加西亚(Carlos Garcia)
2013年9月3日在8:04

这是vdb的更新链接

–viv
2013年9月3日在17:58