如何挂钩导出功能不可用的Native进程?

时间:2011-07-09 18:46:07

标签: c++ hook reverse-engineering cracking codecave

我需要解决本机进程的逆向工程问题。 我有一些非托管的.exe对它有一些控制(例如TextBox,Buttons,TextAreas,ComboBoxes)。填写控件上的所有数据后,用户将按“打开”。

实际上它会打开调制解调器端口并发送AT命令。我想检查数据的格式以及它将发送到调制解调器COM端口的消息。

所以我需要对进程进行反向工程并挂钩函数(最可能是“打开”调制解调器端口的功能,当用户点击“打开”时,它将被调用)。

建议??我的方向是正确的,我需要在注射后挂钩它的功能,我的目标将会实现。

注意:

未检测到EXPORTED功能。我使用了CFF / PE Explorer。

此致 乌斯曼

2 个答案:

答案 0 :(得分:1)

我看到两种可能性。一种方法是将显示器连接到com端口,然后查看那里出现的内容。这完全避免了代码的RE,并且通常会更快更容易。

[编辑:有两种形式:一种是硬件 - 连接到COM端口硬件的逻辑分析仪(或该订单上的某种东西)。它解码并显示串行数据流。另一种形式是使用IAT挂钩调用WriteFile并显示打开的文件以及写入每个文件的数据的软件。 Microsoft Detours库可能对此有所帮助。]

如果您决定重新编写代码,您可能需要一个像IDAPro这样的反汇编程序。您可能 能够找到处理COM端口的部分,方法是从调用CreateFileWriteFile的地方开始(假设您正在处理Win32,基于Win32)提到“PE”)。您可能会在某处将“\\。\ COM”(或至少“COM”)作为文字字符串,并且您希望找到使用该字符串的CreateFile调用(或者副本)。

从那里开始,你必须向后工作才能找到将实际写入COM端口的字符串放在一起的代码。很难猜出会有多复杂。

答案 1 :(得分:0)

OllyDbg可以帮到你。您还需要一些汇编语言和调用约定的基本知识。当然还有安装拦截器功能的原则(绕道而行)。