Действительно очень просто и по русскому.
Кстати-да Рикардо про это сказал в 28-й главе…
Что есть какой-то там изящный крякинг, а есть просто крякинг, где используются инструменты облегчающие работу, я всё-же согласен с Рикардо и придерживаюсь к тому-что по проще, непонимаю зачем «Изобретать велосипед» и «Мозги компостировать», когда что-то можно сделать легче, быстрее и проще…
Хочу кое-что отметить к 30-й главе, там небольшая ошибка, из-за которой способ описанный в статье не будет работать на новых ОС.
Как и во всех заметок здесь не будет ничего сложного, другие качества этих заметок, надеюсь никто и не увидит, гы-гы..
В этой главе рассматривается P-Code (Он-же псевдокод, он-же опкод), итак приложения на VisualBasiс, бывают двух типов (Ниже моё представление, может-быть неправильно, поправьте если-что):
1) NATIVE - в NATIVE-коде выполняют строки кода в секции кода программы, т.е. эти программы можно дизассемблировать, а API бейсика вызываются уже в длл-ки.
2) P-Code - при выполнении не происходит остановок в секции кода, кроме тех случаев, когда встречается вызов какой-либо API-функции. Это очевидным образом указывает на то, что никакого исполняемого кода в данной секции нет.
Дизассемблирование программы, использующей P-CODE, ничем не поможет, так как там нет исполняемого кода. В ней всегда запускается DLL Visual Basic'а, которая читает значения из секции кода, указывающие ей, что нужно сделать.
Пример:
Байт 1e – делает безусловный переход, он выполняется в DLL Visual Basic’а, то есть, она считывает эти значения из секции кода, и они указывают DLL, что нужно сделать. Таким образом, никакого выполнения кода в соответствующей секции не происходит, только считываются из неё значения.
Что-то я отвлёкся, теперь к заданию 30-й главы, там надо убрать наг-окно у программы которая написана на Visual Basic, написана как-раз по второму типу, т.е. P-Code…
Наг-окно – это окно которое открывается, перед основной программой, её надо убрать ! ;)
Нужно патчить саму программу, но воспользуемся поможником –это exdec, эта программа позволяет увидеть адреса опкодов, далее эти опкоды и поменяем + скажу где у автора была ошибка для новых систем…
Итак откроем прогу вначале в exedec, вот скрин:
Там мы видим название окошко, т.е. “NAGaeliminar”, а также что это окно вызывается при помощи API бейсика _rtcMSGBox, нас интересует адрес 0x401AD2 (Самый крайний левый столбик)…
Можно закрыть exedec, в общем-то больше не нужен…
Открывает крякми в Oledbg, далее нам нужен дамп, переходим по нашему адресу 401AD2 :
Получаем:
0A – Это наш опкод, далее идут параметры, до 36 – это уже другой опкод, это видно в exedec (второй столбик)…
Так вот автор рекомендует заменить 0А на F5, параметры просто обнулить, F5 – как я понимаю pop… Но ведь программа вылетит по ошибке, я-же просто заменил на F5, а параметры оставил как есть и тогда программа нормально запустилась без наг-окна ! :)
Меняем байт, далее сохраняем патченную программу:
Запускаем, без всяких ошибок, УРЯЯЯЯ !
Во вложении приложение к посту... :)