Зараженный компилятор или неисправность?

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

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

У меня возникла какая-то странная проблема, как мой антивирус, так и код кода malwarebytes *, скомпилированный с примерами masm и masm в качестве вируса. Я искал googled и обнаружил, что эта проблема возникла раньше, поэтому я не воспринял это слишком серьезно и сначала подумал, что это ложноположительно.

Но я скомпилировал код, который вы видите внизу этого сообщения, чтобы проверить некоторые другие мои проблемы. И я запустил его через 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, и malwarebytes flagg являются примерами только как вирусы, но не файл (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

Update:

Код не на диске, а в памяти, поэтому он, вероятно, имеет какую-то библиотеку:

Disassembly

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

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

Ответ 1

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

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

Ответ 2

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