Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Обсуждение статей —› [ Erfaren ] Полная перекомпиляция программы write.exe или тестируем демо-версию IdaPro 5.6
<< . 1 . 2 .
Посл.ответ Сообщение


Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 22 ноября 2010 00:12
· Личное сообщение · #1

Обсуждение статьи Полная перекомпиляция программы write.exe или тестируем демо-версию IdaPro 5.6

-----
Всем не угодишь





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 13 января 2011 17:47
· Личное сообщение · #2

Erfaren
если вы такой замечательный реверсер, зачем всяким извратом страдать?
расширте секцию кода или дата
добавте нужного кода для восстановления буффера копирования
или еще лучше сохранение

Erfaren пишет:
Чтобы задействовать их мощь нужно просто понять модель базы данных Ильфака. Вот где проявился весь его изощренный ум математика и программиста. Модель эта явно избыточная, я даже думал, а не приспособить ли ее к ведению иерархических баз данных,

скользко сказано, но если вы про формат idb, то его не ильфак придумал

ps чесно, не представляю зачем нужен голый asm листинг после работы такой ida
даже в средненьком на 9 мегабайт .asm файле особо не сориентируешься




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 13 января 2011 17:49 · Поправил: [0utC4St]
· Личное сообщение · #3

Erfaren пишет:
да и какая мне разница перейдете ли Вы на демо-версию 6.0 или останетесь в коммерческой версии 5.5?

речь шла о двух огрызках (читать Демках).
Erfaren пишет:
Не проще ли работать в обеих версиях?

Конечно же нет.

Erfaren пишет:
Если удастся максимально автоматизировать процесс восстановления бинарного кода на уровне ассемблера, то тогда будет очень просто провести предполагаемые тесты. Возможно, это послужит темой моей будущей статьи.

Будем посмотреть почитать.
зы Спасибо за интересные статьи.

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 45.7 (посетитель), 5thx
Активность: 0.020
Статус: Участник

Создано: 13 января 2011 18:02 · Поправил: Fallout
· Личное сообщение · #4

Был в свое время... проект ADAxx ( www.adaxx.narod.ru )... собственно как раз и позволял получать компилябельный исходнях на асме... работало очень даже не плохо....



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 13 января 2011 22:33 · Поправил: Erfaren
· Личное сообщение · #5

ToBad пишет:
Точно, в точку! У Ильфака раздвоение личности, кроме денег захотелось побольше славы и полез "в народ". Говорит теперь на форумах о себе в третьем лице и прославляет сам себя... Причём вторая личность Ильфака никак не хочет покупать официальную версию у первой, а первая специально оставляет побольше всего полезного в демоверсии для второй. Такой вот симбиоз двух Ильфаков с минимальными затратами на пиар...


Вообще-то это крутая идея! Я могу еще добавить, если нет «раздвоения личности», но ты (в данном случае я ) хочешь себя прославить (Вы, правда, не поверите, но славы я не хочу), то сделав подобный информационный реверанс там, где автора программы не очень любят или идут «святые», «религиозные» программистские «войны» можно с минимальными усилиями «вляпаться» в историю .

Скажу откровенно, некоторая ментальная связь с Ильфаком у меня существует, так как мы оба выпускники мехмата МГУ и более того у нас был общий научный руководитель – заведующий лаборатории «Системного программирования» - А.Г. Кушниренко. Я, правда, окончил университет на несколько лет раньше Ильфака (в МГУ мы не пересекались) и был под руководством завлаба всего один год, а не три как Ильфак. Конечно, таких способностей как у Ильфака у меня нет, поэтому и достижений у меня на несколько порядков меньше. Впрочем, я не комплексую, но, по-видимому, мой проект «Erfaren» (хотя у меня есть и другие) будет все-таки связан с демо-версиями IdaPro. Тут уж я ничего с собой поделать не могу. С коммерческими версиями мне работать не так интересно, как с демо. Однако «Карл Маркс и Фридрих Энгельс не муж и жена, а четыре разных человека» . Так что, не надо больше спекуляций на эту тему.

ToBad пишет:
p.s. Erfaren я не читал ваши статьи и не берусь судить об Ильфаке или других авторах ровно как и о будущем превосходстве Китая, но ваши посты и правда до отвращения пресыщены похвалами. Именно по этому, а не ввиду не виденья ничего кроме своих творений вы читаете такие отзывы от участников форума.


Хорошо, будем считать, что мои отзывы об авторе «Иды» это были контраргументы к статье Reverse Engineering. Тем более что я искренне восхищаюсь его способностями безо всяких задних мыслей. Однако на этом можно поставить точку. Давайте просто перейдем в конструктивное русло восстановление кода на уровне ассемблера, оставив за скобками наше отношение к автору интерактивного дизассемблера.



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 13 января 2011 23:26 · Поправил: Erfaren
· Личное сообщение · #6

reversecode пишет:
Erfarenесли вы такой замечательный реверсер, зачем всяким извратом страдать?расширте секцию кода или датадобавте нужного кода для восстановления буффера копированияили еще лучше сохранение


Я не считаю себя реверсером, тем более «замечательным», скорее начинающий тестер по «восстановлению кода на уровне ассемблера».

Концовку Вашей фразы не понял. Вы считаете лишним наличие кода и плагина SaveListing.plw? Так там текста на страницу. Или Вы имели в виду что-то другое?


reversecode пишет:
скользко сказано, но если вы про формат idb, то его не ильфак придумалps чесно, не представляю зачем нужен голый asm листинг после работы такой idaдаже в средненьком на 9 мегабайт .asm файле особо не сориентируешься


В заголовке idb написано: B-tree v 1.6 (C) Pol 1990. Явно это не подпись Ильфака. Но это может быть реализация иерархического дерева, сделанная другим, однако сами идеи по собственно структуре базы данных «Иды», скорее всего, исключительно авторские.

Зачем нужно полное восстановление асм-кода? Хороший вопрос. Концептуальный. Если отвлечься от собственно тестирования «Иды», то для меня смысл этого в следующем:

1. Получить возможность работы с профессиональным ассемблерным кодом. Исследование простейших бинарных программ от Майкрософта показало, что их асм-код содержит в концентрированном виде такую информацию, которую не почерпнешь ни из каких источников учебного ассемблерного кода, типа курсов от Iczelion’a. Думаю, очень полезно поработать руками с этим кодом (чего я еще не делал в своих статьях).

2. Более важный момент. Допустим, Вы хотите приспособить замечательный контрол SysListView32 из comctl32.dll v.6.1 (Win7) под ХРюшу. Просто так взять эту длл-ку из одной ОСи и перенести в другую не получится, а вот перекомпилировать ее в другой операционке вполне. То, что это не утопия, я уже проверял. Мне удалось перекомпилировать мегабайтную comctl32.dll v.6.0 (13 Мб асм-кода) и даже выполнить несколько функций из нее. Только за стабильную работу всей вновь сгенерированной длл-ки я не уверен. Поэтому, смотрю как ведут себя уже достаточно большие перекомпилированные ехе-файлы. Скажем, удалось перекомпилировать почти 300-х килобайтную утилиту tsadmin.exe. Она заработала, только меню и левые окна работают, а правые нет. Это говорит о том, что процесс восстановления кода прошел не достаточно корректно. Опыт показывает, что всю ручную работу вполне можно пытаться автоматизировать скриптами и плагинами «Иды», что я и собираюсь делать в ближайшее время. Думаю, идея понятна. Берете чужой бинарник, который устраивает Вас почти полностью или нужен только конкретный кусок из него (риппинг кода) или объединяете нескольких кусков из разных бинарников и конструируете собственный асм-проект, не требующий большой ручной работы. Естественно, это можно использовать только в личных целях, чтобы не иметь проблем с правообладателем. Но иногда подобные эксперименты могут быть интересными. Реальные проекты, по понятным причинам, не стоит рекламировать.



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 13 января 2011 23:34
· Личное сообщение · #7

Fallout пишет:
Был в свое время... проект ADAxx ( www.adaxx.narod.ru )... собственно как раз и позволял получать компилябельный исходнях на асме... работало очень даже не плохо....


Сейчас времена другие. Нужна поддержка уровня «Иды». Сомнительно, что существует достойная альтернатива.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 13 января 2011 23:36
· Личное сообщение · #8

Erfaren пишет:
Концовку Вашей фразы не понял. Вы считаете лишним наличие кода и плагина SaveListing.plw? Так там текста на страницу. Или Вы имели в виду что-то другое?

я говорю о том что бы вы лучше поисследовали полноценные функционалы IDA
раздолбили алгос по сохранению idb, и добавив секцию кода .text и переписав функцоинал сохранения на asm, восстановили функционал полноценной IDA в демо верисии
ильфак бы тогда точно застрелился
ну или демок бы точно не выкладывал))

Erfaren пишет:
В заголовке idb написано: B-tree v 1.6 (C) Pol 1990. Явно это не подпись Ильфака. Но это может быть реализация иерархического дерева, сделанная другим, однако сами идеи по собственно структуре базы данных «Иды», скорее всего, исключительно авторские.

я не помню уже где в интернете, а может и на сайте ильфака было написано о том кто что разрабатывал
и понится мне стуктуру idb формата(тоесть как хранить данные) пренадлежат какому корешу ильфака

Erfaren пишет:
Зачем нужно полное восстановление асм-кода? Хороший вопрос. Концептуальный. Если отвлечься от собственно тестирования «Иды», то для меня смысл этого в следующем:

1, 2 - с этим впринципе и те что на паблике IDA справляются



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 14 января 2011 00:14
· Личное сообщение · #9

reversecode пишет:
я говорю о том что бы вы лучше поисследовали полноценные функционалы IDAраздолбили алгос по сохранению idb, и добавив секцию кода .text и переписав функцоинал сохранения на asm, восстановили функционал полноценной IDA в демо верисииильфак бы тогда точно застрелилсяну или демок бы точно не выкладывал))


У меня нет цели насолить Ильфаку. Копировать листинг можно было во всех демо-версиях (через буфер обмена). Сейчас это можно делать в любой версии с помощью плагина. Но принципиально ситуация не поменялась. Поэтому никакого ущерба Ильфак не получил. И если он сильно хочет отказать нам в возможности иметь листинг, то пусть убирает поддержку плагинов. Тем не менее, остается возможность сканирования содержимого чужого окна или чужой памяти из другой программы. Поэтому вряд ли эти ограничения инструмента для крэкеров смутят самих крэкеров. Тем более что платформа Qt открытая и можно искать лазейки через само ядро Qt. Принципиальный выход для Ильфака – очень существенно ограничивать собственной функционал «Иды», но в чем тогда смысл демо-версии? Либо перейти к демо-роликам, вместо демо-версий, как сделала фирма «1С». Но и это нас не сильно пугает, останемся работать с шестой демо-версией. Лично мне ее возможностей надолго хватит.

Что касается поддержки работы с базой данных idb с помощью плагинов, то это вполне легальная возможность, по крайней мере, для тех, кто имеет IDA SDK. Разве может Ильфак запретить им выложить подобные плагины (особенно полезные для демо-версий) в открытый доступ? Другое дело, что работа с плагинами слабо документирована. Видно, что в этом есть смысл для Ильфака. Поэтому удастся или нет написать подобные плагины – вопрос открытый .



Ранг: 15.5 (новичок), 6thx
Активность: 0.01=0.01
Статус: Участник

Создано: 14 января 2011 05:13
· Личное сообщение · #10

reversecode пишет:
я не помню уже где в интернете, а может и на сайте ильфака было написано о том кто что разрабатывали понится мне стуктуру idb формата(тоесть как хранить данные) пренадлежат какому корешу ильфака

Вот здесь, наверное:
www.fcenter.ru/online.shtml?articles/software/interview/6704



Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 14 января 2011 06:05
· Личное сообщение · #11

reversecode пишет:
добавте нужного кода для восстановления буффера копирования

Зачем ?
Нопим этот переход
Code:
  1. .text:080AC64C                 cmp     eax, 0FFh
  2. .text:080AC651                 jg      loc_80AC8E8

и вуоля Адреса из линуксовой версии. А вообще ищется проще простого по строке "Sorry, copying huge amounts to clipboard is disabled in the demo"

Кстати демо ида не дает дизасмить саму себя. И определяет это... по имени файла



Ранг: 39.6 (посетитель), 21thx
Активность: 0.020
Статус: Участник

Создано: 14 января 2011 06:26
· Личное сообщение · #12

Erfaren пишет:
«восстановлению кода на уровне ассемблера»

здесь только одна главная и никем не решенная проблема - определить где данные, где код

Erfaren пишет:
удалось перекомпилировать мегабайтную comctl32.dll v.6.0 (13 Мб асм-кода) и даже выполнить несколько функций из нее. Только за стабильную работу всей вновь сгенерированной длл-ки я не уверен
...
удалось перекомпилировать почти 300-х килобайтную утилиту tsadmin.exe. Она заработала, только меню и левые окна работают, а правые нет.

каждый сходит с ума по-своему



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 14 января 2011 09:56
· Личное сообщение · #13

Zorn пишет:
Зачем ?Нопим этот переход
. . .
и вуоля Адреса из линуксовой версии. А вообще ищется проще простого по строке "Sorry, copying huge amounts to clipboard is disabled in the demo"Кстати демо ида не дает дизасмить саму себя. И определяет это... по имени файла


Да, это может служить альтернативным решением предложенному в моей последней статье. Только я стараюсь использовать более легальные возможности. А защита по имени файла это действительно смешно. Но видимо и дураков еще немало раз есть такая защита .



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 14 января 2011 10:04 · Поправил: Erfaren
· Личное сообщение · #14

sen пишет:
здесь только одна главная и никем не решенная проблема - определить где данные, где код


Согласен, в общем случае задача неподъемная. Только в реальных, обычных (без изощренных наворотов) программах как правило блоки кода и данных визуально более-менее различаются. Потому на них вполне можно натравливать скрипты и плагины .

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

sen пишет:
каждый сходит с ума по-своему


Цели для тестов подобного рода действительно имеют мало смысла. Однако смысл здесь в другом, если вы сможете проделать все это, то, как минимум, наберетесь нового и полезного опыта в реверс-инжиниринге. А уж как его применять реально этот опыт это уже другой вопрос. Уже говорилось, что реальные задачи для «Иды» не стоит рекламировать. Ограничимся, поэтому тестовыми, а, следовательно, и малополезными решениями.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 14 января 2011 10:31
· Личное сообщение · #15

Заметь уже замечательную кнопку Правка.



Ранг: 10.0 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 04 июля 2011 20:25
· Личное сообщение · #16

Новая статья: IdaPro v.6.1 demo: Серьезное испытание.

Введение

Надо отдать должное Ильфаку Гильфанову, он успевает выпускать новые версии своей программы быстрее, чем мы тестировать их. Кроме того, в новой версии сохранилась возможность использовать скрипты и плагины, что не может не радовать. Ведь именно благодаря этим средствам даже демо-версия «Иды» становиться практически полупрофессиональным инструментом. В профессиональной, коммерческой версии расширяется только набор поддерживаемых средств и возможность долговременной работы с программной базой idb. Но для наших целей это пока не актуально, особенно учитывая стоимость программ Ильфака и трудность их приобретения частными лицами. Любая оплачиваемая программа должна рано или поздно приносить либо прибыль своему пользователю, либо удовольствие. Прибыль пока даже не просматривается, а удовольствие овладения коммерческой «Идой», слишком дорогостоящее, чтобы об этом думать всерьез. Я, конечно, не имею в виду пиратские копии «народного хакерского инструмента», ими все пользуются на собственный страх и риск. Причем это касается практически всего коммерческого программного обеспечения. Будь моя воля, я бы требовал выплаты за использование ПО только после того, как оно уже начало приносить прибыль своему владельцу (а не арендатору!), не принимая в расчет цифровой продукт предназначенный для развлечений. А иначе за что платить, за возможность самообучения?

Однако перейдем к цели нашей статьи. Проведенные, в предыдущих статьях, тесты по восстановлению исходного кода на уровне ассемблера для простейших программ, логически приводят к мысли, а насколько хорош наш IdaPro для перекомпиляции больших бинарных программ? Конечно, иметь дело с бинарным кодом защищенным различными навесными защитами либо не имеющем отладочных символов пока что малопривлекательно. Поэтому мы волей неволей должны выбрать для теста потенциально хорошо восстановимые dll-ки или exe-шники и достаточно общедоступные, чтобы любой мог повторить наш тест. Естественно, что наиболее подходящие на эту роль файлы из относительной простой и еще достаточно распространенной операционной системы Майкрософт Windows XP, тем более что для ее системных файлов нет проблем с отладочными символами. Ну, а для широко известных, «средней тяжести» программ Майкрософта естественно предложить для наших исследований что-то вроде знаменитого Windows Explorer или Проводника по-русски (explorer.exe). Если же вести речь о dll-ке, то также естественно взять библиотеку общесистемных контролов comctl32.dll,тем более, что ее интенсивно использует тот же Проводник.

Предварительный обзор объектов исследования

Размер файла explorer.exe из Windows XP, sp.3, версии 6.00.2900.5512 (xpsp.080413-2105) составляет 1’034’240 байт, хотя есть сборки той ОС и с dll той же версии, но размером 1’721’344 байт. Видимая разница состоит только в размерах ресурсов, например, одни и те же bmp-шки могут сильно отличаться своим размером.

В любом случае это уже на порядки больше, чем ранее исследуемые нами файлы. Но зато уже это более похоже на реальный проект, хотя очень трудно себе представить, кому может быть интересно восстановление кода Windows Explorer, кроме как ради учебных целей. Но если уж исследовать возможности свежайшего релиза «Иды», то чего мелочиться, правда? Тем более, как мы увидим, весьма существенную часть в Проводнике составляют ресурсы.

Размер файла comctl32.dll из Windows XP, sp.3, версии 6.0 (xpsp.080413-2105) составляет 1’054’208 байт. . .


Последняя версия статьи в pdf-формате лежит здесь: [url= http://erfaren.narod.ru/Asm/Erfaren-005-Test-IdaPro61-demo.pdf]Erfaren-005-Test-IdaPro61-demo.pdf [/url].

Поскольку это проблема выложить большой файл с данными исследований, то вот ссылка IdaPro61DemoTest.pdf на zip-файл, замаскированный под pdf (измените расширение в zip), с результатами работы.

019e_04.07.2011_EXELAB.rU.tgz - Erfaren-005-Test-IdaPro61-demo.pdf


<< . 1 . 2 .
 eXeL@B —› Обсуждение статей —› [ Erfaren ] Полная перекомпиляция программы write.exe или тестируем демо-версию IdaPro 5.6
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати