2011-01-09 47 views
10

我遇到了一件很奇怪的事情,事情总是不加起来。 首先,我在这里发布这个,因为我不确定这与计算机病毒有什么关系。如果确实如此,请问我能否找到帮助的地方?受感染的编译器或故障?

所以现在:

我在这里有某种奇怪的问题,我的防病毒和的Malwarebytes标志码双向*编译MASM和MASM例子为病毒。我搜索了一下,发现之前出现过这个问题,所以我没有认真对待这个问题,一开始以为这是一个误报。

但我编译了你在这篇文章底部看到的代码来测试我的一些其他东西。我跑了它通过OllyDbg中(同时无视我的魔岛防病毒),然后我看到了这一点:

00401000 > -E9 FBEF6F71 JMP 71B00000 ; this is a weird jump I did not put there 
00401005  90    NOP 
00401006  8BC0   MOV EAX,EAX 
00401008 . 8BD8   MOV EBX,EAX 
0040100A . 33D9   XOR EBX,ECX 
0040100C . 8BC3   MOV EAX,EBX 
0040100E . 03CB   ADD ECX,EBX 
00401010 . 33C3   XOR EAX,EBX 
00401012 . 2BC1   SUB EAX,ECX 
00401014 . 8BCB   MOV ECX,EBX 
00401016 . 33D9   XOR EBX,ECX 

下面的代码不可能编译成跳,所以我的代码加强英寸一段时间后,我看到奇怪的代码开始通过ntdll.dll库中的api进行枚举。发生了什么?如果这确实是病毒在哪里得到帮助?

但我还是不知道,这两个魔岛和的Malwarebytes弗拉格只有例子如病毒,而不是文件(test.exe的)作为病毒

测试代码,我用测试...

*: 包括\ MASM32 \包括\ masm32rt.inc

.data 

.code 

Start: 

nop 
nop 
nop 
nop 
nop 
nop 

mov eax, eax 
mov ebx, eax 
xor ebx, ecx 
mov eax, ebx 
add ecx, ebx 
xor eax, ebx 
sub eax, ecx 
mov ecx, ebx 
xor ebx, ecx 

invoke ExitProcess, 0h 


end Start 

更新:

的代码不是在磁盘上,但在内存中,因此它可能是某种形式的这样一个库:

Disassembly 

00401000     start: 
00401000 90      nop 
00401001 90      nop 
00401002 90      nop 
00401003 90      nop 
00401004 90      nop 
00401005 90      nop 

而且我已经删除了调用退出过程和它仍然存在

回答

9

关于不明原因的跳跃,在masm32.com在谷歌导致this thread快速搜索这似乎提供有趣的信息,并most notably

“COMODO”互联网安全的罪魁祸首。
它正在修改可执行文件以实现唯一的部分“sanbox”。

1

地址71B00000距离当前代码很远,请检查它是否实际上位于某个其他加载的模块内部。甚至可能是使用宏的invoke的副作用(或者简单地使用DLL--因为ExitProcess是从DLL导入的)。试试如果你用一个简单的无限循环替换它,会发生什么。 JMP .或其他。然后,您将不得不手动杀死您的程序,但这将是一个有趣的数据点。另外,检查你的exe文件在磁盘上,看看它是否已经在开始时有JMP

+0

绝对正确的调用`ExitProcess`应该可以开始在`ntdll.dll`中执行代码。 – 2011-01-09 19:37:50

+0

会做,并在一分钟后回来,但同时我检查了目录中的其他文件(也是ollydb),我发现olly跳到同一个地址(入口点的地址)然后我重新加载了内存中的olly,并且调试olly告诫我说,代码可能是自我模式,从我知道的病毒很少这是非常糟糕的不是吗? – Rick 2011-01-09 19:39:42