DLL - IDA的动态分析


3

我是“中等新的”,我必须调试一个dll的函数。我如何告诉IDA:使用参数A,B和C启动函数XXX? 有没有解决方案或插件做到这一点?我试过用rundll32.exe来做这件事,但并没有做到。

我对OllyDbg的没有经验,这就是为什么我问一个IDA解决方案

感谢您的帮助!

  0

rundll32.exe应该这样做。您可以在调试器设置中设置参数。 05 5月. 142014-05-05 13:35:51

4

根据this answer,rundll仅支持具有特定签名的运行函数。我会建议编写一个简单的可执行文件来加载它。例如,在c中,可以调用LoadLibrary(“yourdll.dll”),然后调用GetProcAddress(“yourfunc”),然后调用它。有关更多信息,请参阅MSDN(链接)。

在IDA中,你会给你的可执行文件作为进程,但你的DLL作为输入文件。这将允许您设置IDA在加载dll时设置的断点。它还使您可以控制参数,因为您只需从命令行传递它们即可。

  0

谢谢,我用这种机制写了一个可执行文件,它完美地工作! =) 08 5月. 142014-05-08 09:44:00


3

IDA Pro有这个机制叫做AppCall,它基本上允许你设置一个函数的参数并直接调用它。

简而言之,Appcall是一种机制,用于从调试器或脚本调用调试程序内部的函数,就好像它是内置函数一样。如果您使用过GDB(调用命令),VS(立即窗口)或Borland C++ Builder,那么您已经熟悉这些功能。

现在,这可能不会直接适用于您的情况,我想创建一个小包装程序,并使用appcall可以使事情变得更容易。

  0

感谢您的回答,我不知道AppCall系统,但它可能是有用的。 08 5月. 142014-05-08 09:46:14