эвристика и эмуляция под msdos
хочу предложить asm -программерам вместо споров
о том, как лучше делать свою операционку, другой
challenge -поимка неизв. вирусков под msdos.
если вам нужны примеры самих зверей -лучшее
можно найти на vx.org.ua, раздел zines,
журналы infected voice или 40hex.
с первого взгляда все кажется просто -ищейка
должен состоять из 2х автономных частей. это
эмулятор аппаратной части и ai (анализатор).
продолжительное кол-во времени ломал голову
над этим, однако вскоре мой интеллект почти
иссяк. на настоящий момент для желающих
"поломать голову" есть задачка -разбор
инструкций 8086 :). в частности, двухоперандных
наподобие mov reg,[mem]. нужен код!
сорц, который пытается эмулировать бинарник
и выводит предупреждения, могу выслать мылом.
также одну из последних версий можно отловить
у меня на сайте (в скором времени).
"зачем?" :) не думайте над этим. главное -"как?"
с первого взгляда все кажется просто -ищейка
должен состоять из 2х автономных частей. это
эмулятор аппаратной части и ai (анализатор).
А эмулятор какой?
трассировке с помощью int1 я не особо доверяю.
в теле виря можно с легкостью этот инт
перехватить, скажем для расшифровки, или напротив,
для "ослепления" эмулятора. ой, а если при
проверке флажков выявится trace flag, можно
и винт отформатить :).
все придется делать ручками. у нас есть псевдо
-регистры. например, если мы наткнулись на
33,c0 ("xor ax,ax"), обнуляем псевдо -регистр,
выполняющий роль ax. но это частный случай.
Пробовал прочитать "Антивирусные технологии: емуляция програмного кода" на васме?? По-моему там об этом написано.