0

所以这是我正在学习的逆向工程入门课程。

所以我有两个文件是同一个程序,一个应该有木马。

我查看了这两个文件,发现了一些非常奇怪的东西。但是,我没有理由说明为什么会发生这种情况。

  1. PE头不同。在 DOS 标头中的一个文件中,PE 标头位于偏移量 F0 处,另一个位于 F8 处。为什么?我真的不明白。为什么有人会将 PE 标头更改 8 个字节?
  2. 我注意到代码入口点也不同。这是否意味着程序的开头正在跳转到其他地方,这意味着两个程序都从不同的位置运行。
  3. 我注意到所有的 RVA 都说出口或进口表已经增加或向上移动了。我认为这是因为 PE 标头移动了 8 个字节,因此文件中的其他所有内容也会向上移动。
  4. 代码值的大小不同,因为我发现一个文件比另一个文件大一点。时间戳也不同,这意味着文件必须已被编辑。
  5. 其中一个文件具有导入符号 execve,而另一个则没有。不知道这个符号有什么作用?

最后,我认为出口符号中的 1 个具有跳跃等,而另一个则没有。这意味着它正在做不应该做的事情。

无论如何,这些是我注意到的一些观察结果。我只需要帮助理解这些观察可能意味着什么。

谢谢。

一个菜鸟逆向工程师。

4

1 回答 1

1

希望这会澄清一些事情。

我注意到代码入口点也不同。这是否意味着程序的开头正在跳转到其他地方,这意味着两个程序都从不同的位置运行。

好的,代码入口点的变化可以清楚地表明代码已被篡改,并且通常意味着恶意代码将在入口处被调用,然后恶意代码将随后运行正常代码。这样做是为了让用户不会注意到应用程序已被篡改。

代码值的大小不同,因为我发现一个文件比另一个文件大一点。时间戳也不同,这意味着文件必须已被编辑。

大小的变化也可能表明可执行文件中存在恶意代码,因为可执行文件不应该增长(我不知道你在喂你的)。

其中一个文件具有导入符号 execve,而另一个则没有。不知道这个符号有什么作用?

至于execv,请看_execv,_wexecv MSDN

于 2014-03-14T09:47:22.783 回答