Chi*_*hii 5 windows encryption dll reverse-engineering code-injection
我有一个Windows exe应用程序,用于以清除方式将数据包发送到服务器.这个应用程序(让我们称之为客户端应用程序)绝对是源代码,但一些聪明的黑客十六进制编辑二进制文件,并使其发送被扰乱的数据包.
现在,显然,这些数据包是以可解密的方式进行加扰(否则服务器将无法理解它),但我想要做的是编写一个模拟这个二进制应用程序的模拟器,将相同的数据包发送到服务器,并能够解密响应(如果它被扰乱).
十六进制客户端需要额外的dll才能运行,而旧客户端则没有.我假设以某种方式十六进制客户端设法加载该DLL(让我们称之为client.dll)和该DLL的功能是实现加扰/解扰,通过挂钩到一些窗口api重新路由从发送的所有数据包client.exe进程.
如果有人能指导我如何开始研究这一切是如何工作的,以及我如何对这些报道进行逆向工程,那将非常感激.
我不知道提供什么样的信息,但如果有任何缺陷,只需回复,我会发布更多细节,如果有人想要二进制文件,我很乐意提供它.
任何感兴趣的人的二进制下载:
http://dl.getdropbox.com/u/46623/client.dll
http://dl.getdropbox.com/u/46623/newClient.exe
http://dl.getdropbox.com/u/46623/originalClient.exe
这些不会运行,因为资源文件是必需的 - 它们大约是3演出,因此太大而无法上传到任何地方.名称已更改为保护guilty =),但这可能不保护DLL的名称...
我假设编写这个为上述程序的数据包 I/O 添加加密的挂钩的人要么挂钩了相关的 Windows 套接字 API(WSASend
、send
等),要么挂钩了用于发送/接收数据的内部程序函数。
话虽这么说,我建议您使用挂钩检测程序(例如RkUnhooker)来找出实际被挂钩的内容。一旦您知道了哪些 API 被挂钩,您还应该知道这些挂钩的去向,从那里开始您必须手动对挂钩函数进行逆向工程。
至于学习如何做到这一点的主题,我无法指导您仅通过一个教程来教您所有内容,但我强烈建议您查看 Tuts4You 网站,它有大量教程可以满足您的所有需求。
如果可能的话,上传编辑后的客户端和钩子 DLL 的副本,如果我有时间,我将为您编写复制加密和解密函数的代码。
归档时间: |
|
查看次数: |
1299 次 |
最近记录: |