【问题标题】:Infected compiler, or malfunction?被感染的编译器,还是故障?
【发布时间】:2011-06-06 04:28:38
【问题描述】:

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

那么现在:

我在这里遇到了一些奇怪的问题,我的防病毒和恶意软件字节标志代码*都是用 masm 和 masm 示例作为病毒编译的。我google了一下,发现这个问题以前也出现过,所以没太认真,一开始以为是假阳性。

但是我编译了你在这篇文章底部看到的代码来测试我的其他一些东西。我通过 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

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

【问题讨论】:

    标签: assembly masm masm32 virus


    【解决方案1】:

    关于无法解释的跳转,在 google 上快速搜索到 masm32.com 上的 this thread 似乎提供了有趣的信息,以及 most notably

    “COMODO”网络安全是罪魁祸首。
    它正在动态修改可执行文件以实现独特的部分“sanbox”。

    【讨论】:

    • 有吗?感谢上帝!伙计,我一秒钟都害怕:O 我以为我会丢失所有数据(以前发生过...)deinstalls comodo
    【解决方案2】:

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

    【讨论】:

    • 完全正确的是,调用ExitProcess 应该会开始执行ntdll.dll 中的代码。
    • 会做,并在一分钟后发回,但同时我检查了目录中的其他文件(也是 ollydb),我发现 olly 有相同的跳转到那个地址,在同一个地点(入口点的地址)然后我在内存中重新加载了olly,调试olly警告我代码可能是自我模式的,从我对病毒知之甚少的情况来看,这很糟糕,不是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 2011-07-01
    • 1970-01-01
    相关资源
    最近更新 更多