10

我遇到了一些非常奇怪的事情,事情就是不加起来。首先,我在这里发布这个是因为我不确定这是否与计算机病毒有关。如果是这样,你能指导我到一个地方寻求帮助吗?

所以现在:

我在这里遇到了一些奇怪的问题,我的防病毒和恶意软件字节标志代码*都是用 masm 和 masm 示例作为病毒编译的。我用谷歌搜索过,发现这个问题以前也发生过,所以我没有太认真,起初认为这是一个误报。

但是我编译了你在这篇文章底部看到的代码来测试我的其他一些东西。我通过 ollydbg 运行它(同时忽略了我的 comodo 防病毒软件),然后我看到了这个:

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 进行枚举。发生了什么?如果这确实是病毒到哪里寻求帮助?

但我仍然不确定,comodo 和malwarebytes 都只将示例标记为病毒,而不将文件(test.exe)标记为病毒

我用来测试的测试代码...

*: 包括 \masm32\include\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

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

4

2 回答 2

9

关于无法解释的跳跃,在 google 上快速搜索会导致 masm32.com 上的这个线程,这似乎提供了有趣的信息,最值得注意的是:

"COMODO" Internet Security is the culprit.
It is modifying executables on the fly to implement a unique partial "sanbox".

于 2011-01-09T19:37:05.863 回答
1

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

于 2011-01-09T19:33:53.940 回答