Верно, верно, подловили.
Что поделать: откуда у простого студента-выпускника N сотен долларов для оплаты Ильфаку? Первый дистрибутив, который я нашел, был именно этот; тогда я не знал еще ни о бесплатной пятой версии, ни об утечке шестой. «Расширенный инструментарий, предназначенный для закрытого коммерческого использования и лицензированный для антивирусной компании ESET» (Википедия)
я, скорее всего, не использовал. Так что особого финансового ущерба я г-ну Ильфаку не нанес ;) А со временем, буде продолжу пользоваться его продуктом, скорее всего, все же куплю последнюю версию: так, как это произошло с продуктом Лаборатории Касперского.
Года два я пользовался их пробной месячной версией KIS, каждый месяц имея заботы «почистить реестр от ее ключей и переустановить заново» — на третий мне это надоело, и я купил годовую лицензию последней версии. Скоро истекает — куплю еще. :)
Ну для той задачи что в этой статье вполне хватило бы OllyDbg, а он бесплатен.
Более-того reverse-engineering(RE) не заключен только из одной задачи executables -> source. Есть также и другие задачи RE, к примеру:
* Есть некий файл, толи база данных, толи еще что, программы нет. Это тоже RE;
* Есть трафик в сети, программы нет и это тоже RE.
и др.
Ну вы просто Шерлок Холмс, сударь. :)
Мы уже все выяснили. Ida у меня пиратская, так уж вышло. Возможно, я даже снесу ее, поскольку для решения простых задач хватит и Hiew\Olly, а на сложные у меня сейчас времени нет. А карму себе чего портить.
Ну, так… в качестве заключительного слова…
J3QQ4H7H2V2HCH4M3HK86M8VW!
А еще другие реверсеры не любят, когда реверсят их «продукт» и рипают их код. А вообще реверс готового кейгена для последующего переписывания его на другой язык это еще не так интересно как написания с нуля к какому-то крякми (раз речь о легальности).
Не стану спорить, однако в разобранном кейгене собственно кода реверсеров было почти ничего: меня интересовал алгоритм, скопированный ими самими прежде из игры, и в основном я рассматривал его. :)
Да тут материальчик, в общем-то, я целил на самых начинающих, кому интересно, как это все работает. Не так давно я сам таким был. В этом был мой интерес в данном конкретном случае.
Будет время — сделаю что-нибудь более интересное. Вот, к примеру, в разобранном чуть раньше Prehistorik 2 в конце дата сегмента прятался крохотный экзешник, со своим заголовком, таблицей настройки и сегментом кода. Я тогда не стал разбираться, что он делает и как, но без него игра в некоторых местах висла. Возможно, остатки хитрой защиты г-на Змиро из 92-го.
Ну да, только не в случаях когда рипанье заключается в дерганьи правильного кода уже идущего в основном продукте :) Хотя это не случай этой статьи. Хотя согласен с REU — поиск с нуля — самое затратное.
При первом беглом пролистывании «споткнулся» о последлий листинг. Несколько-секундный шок, в течение которого собирался написать коммент в стиле — «это КАКОЙ плагин в Иде вам такой листинг на псевдокоде выдал?!»
Потом присмотрелся, дошло что написано, удивление прошло :)
Да ничем не плох, но разве не лучше читать что-то вроде
wsprintfA(&buffer, "%s-%s-%s-%s", &first_given_string, &second_given_string, first_result_string, second_result_string);
нежели же
wsprintfA(&v13, "%s-%s-%s-%s", &lParam, &v15, v21, v19);
Просто глазу легче читать. Во всех примерах реверсинга с использованием Иды люди переименовывали важные переменные, это естественно — ваш вопрос мне не совсем понятен. :)
Ах, это? Да ну, вы бы хоть спросили меня сначала, знаю ли я PHP. Успокойтесь: знаю, у меня на нем диплом написан. РНР, HTML5, jQuery.
А об чем, собственно, речь? Чем вам не нравится ассемблер и bash? :)
PS но несмотря на блеск и ошеломительную славу, могучую эффективность и поразительный успех применения великого PHP во всех областях, в том числе на заводских станках по обточке дрынов, в детстве моей любимой книгой все равно был не учебник РНР… а вот эта:
Столкнулся с проблемой реверса приложения, которое определятся как «автоматически распаковымое» и затруднен процесс отладки в нем (100% вылет или фриз).
Будет ли что-то на предмет такого вопроса материал :)?
Поясняю. :)
Очень трудно было бы выложить этот листинг в изначально отформатированном виде.
Мне нравится именно этот вид скрипта; здесь же он бы сбился на полукилометровый листинг, где обрезка строк была бы сгруппирована не аккуратно справа, а размешалась бы между строками самого скрипта.
Во-вторых, масштабируемость. Мне почему-то не нравятся листинги, которые нужно листать. Мне кажется, это вызовет отторжение у тех, кому случится их увидеть. Я выбрал оптимальный размер — и все видно, и на весь экран не растягивается.
Как вы думайте? Насколько было бы сложно данную задачу решить с помощью модели нейронных сетей (например, многослойного персептрона)? Сколько образов для обучения понадобилось бы? Насколько сложная конфигурация нейронной сети при этом должна быть?
Реверс-инжиниринг для самых маленьких: взлом кейгена