Debugging 如何通过调试器工具查找未知exe的命令行/参数?

Debugging 如何通过调试器工具查找未知exe的命令行/参数?,debugging,assembly,reverse-engineering,Debugging,Assembly,Reverse Engineering,假设我有一个已编译的exe,并且我想查找exe的参数或命令行参数,那么我如何使用调试器来查找它?我认为这个话题属于逆向工程的范畴,但我似乎找不到如何实现这个技巧的指南 我能得到的最接近的方法是在exe上使用调试器,并在CreateProcess上设置断点。但是,如何在调试器中找到CreateProcess函数?有些调试器允许您在调试器的上下文中调用任意函数,因此如果您的调试器支持此功能,则可以调用GetCommandLine()函数 另一种选择是通过半文件化的TEB和PEB结构。然后,您需要转到

假设我有一个已编译的exe,并且我想查找exe的参数或命令行参数,那么我如何使用调试器来查找它?我认为这个话题属于逆向工程的范畴,但我似乎找不到如何实现这个技巧的指南


我能得到的最接近的方法是在exe上使用调试器,并在CreateProcess上设置断点。但是,如何在调试器中找到CreateProcess函数?

有些调试器允许您在调试器的上下文中调用任意函数,因此如果您的调试器支持此功能,则可以调用GetCommandLine()函数


另一种选择是通过半文件化的TEB和PEB结构。然后,您需要转到fs:30h(),并检查那里的命令行字段。

一些调试器允许您在调试器的上下文中调用任意函数,因此如果您的调试器支持,您可以调用GetCommandLine()函数


另一种选择是通过半文件化的TEB和PEB结构。您需要转到fs:30h(),然后检查那里的命令行字段。

使用一些命令行参数运行exe,如“target.exe-whateverabc” 然后,当调试器加载exe时,在内存中搜索-whateverabc,并在该内存位置和可能的重复位置上设置读取断点。希望当断点触发时,您将在检查该exe中的命令行参数的函数中

要在CreateProcess上设置断点,可以在某些调试器中键入“bpx CreateProcess”。
或者编写一个小应用程序,在kernel32.dll或包含函数的w/e dll上使用LoadLibrary,然后使用函数名获取其地址。然后在该地址上设置执行断点;

使用一些命令行参数运行exe,如“target.exe-whateverabc” 然后,当调试器加载exe时,在内存中搜索-whateverabc,并在该内存位置上设置一个读取断点和可能的重复项。希望当断点触发时,您将在检查该exe中的命令行参数的函数中

要在CreateProcess上设置断点,可以在某些调试器中键入“bpx CreateProcess”。 或者编写一个小应用程序,在kernel32.dll或包含函数的w/e dll上使用LoadLibrary,然后使用GetProcAddress w/函数名称获取其地址。然后在该地址上设置执行断点