wasm@wasm.ru не принял статью (типа такого адреса не существует)

Тема в разделе "WASM.RESEARCH", создана пользователем Erfaren, 2 июл 2010.

  1. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Ну, если так, то да. Хотя, как вариант, можно просто давать ссылку на архив http://erfaren.narod.ru/Asm/IdaPro56Test.001 с просьбой переименовывать расширение в zip. Народ у нас грамотный, разберется, что к чему :) .
     
  2. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Первое впечатление об IdaPro 5.7 очень хорошее. Видимо, Ильфак постарался :) .

    Если символы уже есть, то они прекрасно грузятся локально через меню File / Load file / PDB file . . . Если хотим грузить автоматом, то копируем три файла, о которых шла речь выше. Только плагин pdb.plw переписывать уже не нужно, тот, что из версии 5.7, вполне хорош. Единственный нюанс, что, по моему мнению, грузить символы лучше вручную, а не автоматом. Можно даже дважды. Сначала автоматом, а потом вручную. При автоматической загрузке символы копируются в папку \Temp\Ida, откуда их уже можно достать для ручной загрузки. Почему ручная лучше? При перекомпиляции обёртки regedt32.exe автоматическая загрузка символов часть данных представляет как код. В принципе не страшно, это не влияет на компиляцию, только имя вызываемого файла становится при этом «reegdit.exe» вместо «regedit.exe» (именно эти данные показаны кодом, что делает неочевидным поиск ошибки). Соответственно, скомпилированная программа не запускается. Конечно, простую программу легко поправить вручную (например, 16-ричным редактором). Только вот ручная загрузка символов отображает данные как данные и скомпилированная программа запускается нормально.
     
  3. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Второе впечатление тоже очень хорошее, даже отличное!

    Для боевого крещения IdaPro 5.7 был выбран достаточно серьезный бинарный код comctl32.dll 6-й версии, размером более мегабайта. После декомпиляции полученный ассемблерный код содержал порядка 1000 ошибок. Но если делить их по группам, то будет существенно меньше. Большинство ошибок рекомпилирования из числа уже рассмотренных в моих статьях (см. ссылки выше). Новые ошибки связаны в основном с использованием «Идой» зарезервированных слов в качестве переменных. Но особую головную боль вызвало частичное несоответствие поставляемых с MS VS C++ библиотечных lib-файлов отладочным символам, «расчехляемых» в «Иде». Пришлось достаточно глубоко вникать в процесс создания деф и либ файлов и перекомпилировать многие либы самостоятельно, причем различные для различных ОСей и сервис паков. Пока для меня остается загадкой, как Майкрософт строит универсальные либы не по родным экспортируемым именам системных библиотек, а по их отладочным символам, то бишь алиасам? Понятно, что по непересекающимся ординалам не может быть универсальности, но все же частичной универсальности мелкософту добиться удается. Стандартные утилиты построения достаточно ограничены. Например, не работает связка

    Код (Text):
    1. Alias = Name @OrdNo
    в деф-файлах. Т.е. фактически параметр Name (родное экспортируемое имя dll-ки) можно рассматривать как комментарий, что хорошо видно при отсутствии номера ординала.

    Как бы там ни было, бороться с системными либами от MS можно. А если подремонтировать получаемые lib-файлы напильником, то можно даже где-то добиться частичной их универсальности для разных ОСей.

    Короче говоря, в конечном счете, удалось скомпилировать дизассемблерный код comctl32.dll без ошибок, загрузить полученную длл-ку в память и даже выполнить ее простейшую функцию DllGetVersion. Возвращенная структура вернула правильный результат. Сейчас думаю, как мне проверить пересобранную длл для более сложных тестов?

    Как бы там ни было, оказывается, что «Ида» вполне приличный продукт, с помощью которой можно реально хотеть перекомпилировать серьезные бинарники, ну там игрульки разные или какие-нибудь вражеские программы :) .

    Не знаю только, стоит ли писать на эту тему статью? :)
     
  4. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Опубликовано продолжение данной статьи Полная перекомпиляция простых exe-программ или тестируем демо-версию IdaPro 5.7.

    Аннотация

    Мы лишний раз убедились насколько хорош замечательный инструмент Ильфака Гильфанова IdaPro v. 5.7 demo. Тем более, можно рекомендовать приобрести его коммерческую версию. Но даже в демо варианте это действительно мощный инструмент. Тем не менее, хотелось бы опробовать это средство на чем-то по-настоящему реальном, на какой-нибудь достаточно большой серьезной программе. Вопрос только в том, какая это должна быть программа, чтобы с одной стороны, она была достаточно интересной и полезной, а с другой, чтобы ее исследование не ущемляло ничьих прав. Вы можете высказать по этому поводу свое мнение.

    Примечание

    К данному тексту приложен файл IdaPro57Test.zip (измените расширение в zip), с результатами тестирования. Можно также посмотреть pdf-версию этой статьи.
     
  5. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Опубликована новая статья «Создание универсальных def и lib-файлов для «чужих» dll».

    Введение
    Проблема заключается в том, что использование стандартных lib-файлов от Майкрософт иногда приводит к ошибкам компиляции ассемблерного кода (например, сгенерированного дизассемблером IdaPro), связанных с отсутствием адекватных определений функций в файлах библиотек. Кроме того, иногда возникает необходимость вызова функций по ординалам, что фактически сводится к вопросу вызова функции по ее псевдоимени или адресу.

    . . .

    Выводы


    Понятно, что представленное решение не является идеальным, И для новых проектов может потребоваться дополнительная правка def-файлов. Однако думается, что это будет вполне обозримым по трудоемкости. В любом случае, встречные предложения по совершенствованию техники создания собственных def и lib-файлов для различных dll только приветствуются.

    Примечание

    К данному тексту приложен файл CreatingLibFiles.003 (измените расширение в zip), с результатами тестирования. Можно также посмотреть pdf версию этой статьи.
     
  6. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Опубликована новая статья «Как сохранить дизассемблерный листинг в IdaPro v.6.0 demo?».

    Введение

    Ильфак Гильфанов, создатель знаменитого дизассемблера IdaPro не перестает удивлять нас своим творением. На этот раз мы можем тестировать его новую версию 6.0. Она весьма существенно отличается от предыдущих переходом с платформы разработки Borland C++ на платформу Qt v.4.6.3.0. Внешне это выражается в более изящном и удобном интерфейсе, одинаковом для различных операционных систем. Что конечно немаловажно, но для нас более существенным является качество дизассемблирования программ. Посмотрим, что на этот раз приготовил нам наш творец. К сожалению, первое, что бросается в глаза, относится к плохой новости. Ильфак, в шестой версии, заблокировал нашу лазейку по сохранению листинга кода через буфер обмена. То, что он сделал это только в последней версии, заставляет подозревать его в чтении наших предыдущих статей, где мы описывали этот способ работы с дизассемблерным кодом :) . Т.е. копировать можно, но не более нескольких килобайт, что для многомегабайтных «простынь» кода совершенно не приемлемо. И что нам теперь делать? Как тестировать его любимое детище? Не покупать же данную программу только ради тестирования! Конечно, выход в данном случае мы все-таки найдем, обратив внимание на средства автоматизации IdaPro. А если наш любимый автор вырубит поддержку скриптов и плагинов в следующей версии? Допустим, мы опять найдем выход. Тогда Ильфак может пойти по пути фирмы «1С», которая уже давно не выпускает демо-версии своих продуктов, только демо-ролики :) . Так что запасайтесь на всякий случай нынешними шестыми демо-версиями впрок, а то чем черт не шутит :) .

    . . .

    Выводы


    Хочется надеяться, что эта статья не послужит поводом для Ильфака Гильфанова закрыть в его демо-версиях возможность использования скриптов и плагинов.

    Очевидно, что использование плагинов существо более эффективно, чем применение скриптов практически при том же уровне сложности работы. Конечно для этого нужно иметь IDA SDK последних версий и компилятор С++. Но что нам мешает применить Интернет в личных целях :) ? Эффективность плагинов заставляет пересмотреть наше отношение к внешним скриптам. Можно попытаться с их помощью проделать туже работу, что и в первых трех статьях и даже автоматизировать процесс восстановления бинарного кода программ (на уровне ассемблера) настолько, насколько это возможно. Так что для будущих статей темы всегда найдутся :) .

    Примечание

    К данному тексту приложен файл SaveListing.004 (измените расширение в zip), с результатами исследования и сгенерированным плагином. Можно также посмотреть pdf версию этой статьи.
     
  7. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Erfaren
    Глупости, лучше скажите, где можно скачать про (с ключём или кегеном) ;)
     
  8. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Думаю, что не стоит игнорировать продукт, только потому, что он demo. С демо «Идой» вполне можно профессионально работать, по крайней мере, под виндозу, особенно с мелкософтовскими продуктами и не только. Впрочем, некоторым и от коммерческих продуктов толку не много.

    В Интернете IdaPro6 Вы не найдете, поскольку его там нет в свободном доступе. Правда, на http://cracklab.ru/f/index.php?action=vthread&forum=3&topic=16803&page=2 были ссылки на запакованную с паролем версию IDA Pro Advanced 6.0, только никто взломать этот архив не смог. Попытайтесь сами подобрать пароль, может быть через триллиард лет получится :) .
     
  9. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Erfaren
    Похоже на фейк, к тому же перебирать пароль - тухлое дело.

    Плавали, знаем!

    Обычно чем популярнее продукт - тем быстрее взламывают. А тут что-то не могут зарелизить очень долго.
     
  10. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Ну да, коммерческих версий 5.6 и 5.7 то же нет в Интернете. Так что работать с демой сам Бог велел :) .
     
  11. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Erfaren
    Я лучше пока 5.5 попользуюсь, надеюсь, что когда-нибудь сломают, либо напишут достойную альтернативу.
     
  12. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Одно другому не мешает, можно пользоваться и тем и другим. Есть еще free версия 5.0 на сайте Ильфака для легальных работ :) .
     
  13. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Новая статья: 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-файл статьи, еще до того, как он выложен на моем сайте. Также можно будет посмотреть и сами результаты исследований, если хватит места для этих файлов.
     
  14. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Попытка прикрепления файлов с результатами исследований (3.3 Мб).
     
  15. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Поскольку это проблема выложить большой файл с данными исследований, то вот ссылка IdaPro61DemoTest.pdf на zip-файл, замаскированный под pdf (измените расширение в zip), с результатами работы. Можно также посмотреть последнюю pdf-версию этой статьи.
     
  16. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Наоборот, можно скомпилировать, и приводится пример полноценной перекомпиляции Проводника Windows - explorer.exe, с первоначальным размером более мегабайта.
     
  17. Erfaren

    Erfaren New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2010
    Сообщения:
    27
    Хороший вопрос! По-моему мнению, «Иду» просто недооценивают, особенно ее демо-вариант. Да, в ней есть глюки (в 6.1 появилось то, что не было раньше), но в целом ее можно и нужно использовать. Вопрос, где? В традиционных народно-крэкерских областях, это само собой. Другой вариант, на который я ориентируюсь, это повторное использование качественного бинарного кода, уже в собственных целях. Если для этого годятся оригинальные dll-ки и exe-шники, то вопросов нет, используем их (может быть, слегка подремонтировав напильником, в личных целях). Например, мне очень нравиться контрол из седьмой виндоуз, а работать я с ним хочу в ХР, а там такого или с такими возможностями нет. Можно смирится с этим фактом или перейти на Win7, но лично мне хочется взять его из семерки и скомпилировать под ХР. Другой вариант, это глубокая переработка восстановленного кода на уровне ассемблера, для создания собственных asm-проектов. Тяжело писать огромные объемы кода на асме самостоятельно, но часто этого делать совершенно не обязательно, достаточно взять уже существующий подобный код и использовать его. Существенных изменений, в смысле самостоятельного кодирования на асме, может быть и немного, а вот перемещения огромных блоков кода туда-сюда, как в детском конструкторе, может быть уже достаточно. Однако при определенном навыке это может быть вполне разрешимая задача. На ее решение и направлен мой цикл статей. Так что сейчас мы отрабатываем саму технологию, а примеры ее использования будут позже ибо задача это достаточно сложная и к ней надо подступаться постепенно.