Зараженный компилятор или неисправность? - PullRequest
10 голосов
/ 09 января 2011

Я столкнулся с чем-то очень странным, и вещи просто не складываются.Прежде всего, я разместил это здесь, потому что я не уверен, имеет ли это какое-либо отношение к компьютерным вирусам вообще.И если это произойдет, не могли бы вы, пожалуйста, направить меня в какое-либо место, чтобы найти помощь?

Итак, теперь:

У меня здесь какая-то странная проблема, и мой антивирус и флаг вредоносных байткод * скомпилирован с помощью 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

Приведенный ниже код не может быть скомпилирован в этот переход, поэтому я вступил в код,И через некоторое время я увидел, что странный код начал перечислять через API в библиотеке ntdll.dll.Что происходит?Если это действительно вирус, где можно получить помощь?

Но я все еще не уверен, что и comodo, и вредоносные байты отмечают только примеры как вирусы, но не файл (test.exe) как вирус

Тестовый код, который я использовал для проверки ...

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

И я удалил выход из вызовапроцесс, и он все еще там

Ответы [ 2 ]

9 голосов
/ 09 января 2011

Что касается необъяснимого скачка, быстрый поиск в Google привел к этой теме на masm32.com, которая, кажется, предоставляет интересную информацию, и , в первую очередь :

"COMODO" Internet Security является виновником.
Он изменяет исполняемые файлы на лету для реализации уникального частичного "sanbox".

1 голос
/ 09 января 2011

Адрес 71B00000 довольно далеко от вашего текущего кода, проверьте, действительно ли он находится в каком-то другом загруженном модуле.Может даже быть побочным эффектом от использования макроса invoke (или просто от использования DLL - поскольку ExitProcess импортируется из DLL).Попробуйте, что произойдет, если вы замените это простым бесконечным циклом, т.е.JMP . или что-то подобное.Тогда вам, конечно, придется вручную убить вашу программу, но это будет интересным моментом.Кроме того, проверьте exe-файл на диске, чтобы увидеть, есть ли у него JMP в начале или нет.

...