![]() |
eXeL@B —› Софт, инструменты —› SF find vm handlers |
Посл.ответ | Сообщение |
|
Создано: 05 сентября 2012 20:35 · Поправил: Veliant · Личное сообщение · #1 Разгребал тут свои старые проекты, нашел вот такую вещь. Ищет в распакованном(или дампе) protect.dll адреса обработчиков опкодов виртуальной машины. В планах было сделать еще и определение самой команды, но не сложилось. Некоторые все же не обнаруживаются, тк код бывает замусорен с самого начала обработчика и анализ уходит по другим ветка кода. Просто оставлю это здесь, может кому пригодится. Тестировался на 4.70 pass: доменное имя сайта с www ![]() ![]() |
|
Создано: 06 сентября 2012 07:30 · Личное сообщение · #2 |
|
Создано: 06 сентября 2012 08:31 · Поправил: Veliant · Личное сообщение · #3 Да там ничего особенного-то и нет. Находит первый опкод и начинает движение по коду с помощью beaengine, двигаясь по jmp'ам (в том числе и по левым). Если совпадения с следующей командой маски нет, то идет по коду еще некоторое время в надежде что найдет (в коде это 196 строка nCountBad < 7). В лучшем случае надо либо деревом реализовывать (все равно остается проблема с переходами на мусорный код), либо прикручивать эмулятор, код там все равно базонезависимый по большому счету, тогда будет возможность сделать автоматическое определение и самого опкода. ![]() ![]() |
|
Создано: 07 сентября 2012 11:17 · Личное сообщение · #4 оффтоп Beaengine походу завонялся, автора не видно на форуме почти год, багов накопилось немало в том числе критических. ![]() |
|
Создано: 10 сентября 2012 16:21 · Личное сообщение · #5 |
![]() |
eXeL@B —› Софт, инструменты —› SF find vm handlers |