想象一下,一个带有几个启动参数(例如数字和字符串)的启动程序(在Windows上)。

反汇编该程序(例如,使用PEiD)时,如何找到启动参数?我想做的是找出分配给起始参数“变量”的变量,然后跟踪该变量的使用情况,以找到使用它们的部分。

我对所有这些汇编程序都是完全陌生的,所以这个问题可能很愚蠢,但我无法通过简单的谷歌搜索找到答案。
谢谢!

评论

您是指命令行参数吗?

@IgorSkochinsky糟糕,这就是我的意思。不好意思,我在写这篇文章时忘记了这个词。

#1 楼

与Linux不同,在Windows上,命令行参数不会传递到程序的入口点,而必须使用API​​ GetCommandLine从OS中检索。但是,它很少在实际程序中使用。通常是CRT启动对其进行调用,然后将其传递给WinMain函数(对于GUI程序),或者将其拆分为参数数组(argv),然后将其传递给main(对于控制台程序)。

某些反汇编程序(例如IDA)可以自动识别CRT代码,并仅显示main / WinMain函数,在这种情况下,您可以查看相应的参数(argv / argclpCmdLine)。 br />