Посоветуйте книги/статьи по реверс-инженерингу
От: nen777w  
Дата: 24.04.13 22:01
Оценка:
Привет, посоветуйте хорошие статьи/книги по реверс-инженерингу.
Желательно с описанием использования современных средств: IDA, HexRays, OllyDbg.
Так получилось что сейчас занимаюсь реверсингом одной программы на писаной на Delphi, алгоритм который меня интересует очень большой и очень размазан,
а я чувствую что не хватает опыта. До этого приходилось заниматься "мелким хулиганством", но и там буквально тыкался как котенок изобретая свои способы и приемы.
Почитать про опыт использования инструментов описанных выше было бы очень полезно (особенно интересует IDA с HexRays).
По интернету полно статей о крекинге (что не интересует) интересуем именно методология реверс-инженеринга и чужой опыт.
Т.е. если брать данный конкретный случай, никаких обманок защит здесь нет, есть просто алгоритм размазанный по программе и есть IDA Pro + Hex Reays как инструмент
, возможности которого я уверен что на 100% не знаю, (+ утилиты типа Delphi Decompiler)
Спасибо.
з.ы.
Надеюсь ясно высказался.
Re: Посоветуйте книги/статьи по реверс-инженерингу
От: SenorProgramador Голландия riogamestudio.com
Дата: 24.04.13 22:09
Оценка: +1
Здравствуйте, nen777w, Вы писали:

N>Привет, посоветуйте хорошие статьи/книги по реверс-инженерингу.


http://www.ricardonarvaja.info/
Veni, vidi, vici
I came, I saw, I conquered
Re: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 25.04.13 07:06
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Привет, посоветуйте хорошие статьи/книги по реверс-инженерингу.

N>Желательно с описанием использования современных средств: IDA, HexRays, OllyDbg.
The IDA PRO book. The unofficial guide to the world's most popular disassembler. 2nd Edition
Есть еще Reverse Engineering Code with IDA Pro, но про нее ничего сказать не могу.

Не думаю что оля понадобится если освоить иду.

N>Надеюсь ясно высказался.

Не проще отдать эту работу в аутсорс и заниматься любимым делом?
newbie
Re[2]: Посоветуйте книги/статьи по реверс-инженерингу
От: nen777w  
Дата: 25.04.13 12:19
Оценка:
N>>Привет, посоветуйте хорошие статьи/книги по реверс-инженерингу.
N>>Желательно с описанием использования современных средств: IDA, HexRays, OllyDbg.
pva>The IDA PRO book. The unofficial guide to the world's most popular disassembler. 2nd Edition
pva>Есть еще Reverse Engineering Code with IDA Pro, но про нее ничего сказать не могу.
Спасибо! Постараюсь найти эти книги.
Сейчас вот читаю мыщиха (Образ мышления IDA Pro)

pva>Не думаю что оля понадобится если освоить иду.

Встречал мнения что Оля удобнее чем IDA, хотя что может быть удобнее hexrays ?
Ну а еще патчить (если нужно) можно только олей.

N>>Надеюсь ясно высказался.

pva>Не проще отдать эту работу в аутсорс и заниматься любимым делом?
А сколько за это берут сейчас? Я просто не в курсе.
Re[3]: Посоветуйте книги/статьи по реверс-инженерингу
От: SenorProgramador Голландия riogamestudio.com
Дата: 26.04.13 15:04
Оценка:
Здравствуйте, nen777w, Вы писали:

N>А сколько за это берут сейчас? Я просто не в курсе.


А что надо сделать?
"Давай техзаданье, нет техзаданья -- давай..." (с)
Veni, vidi, vici
I came, I saw, I conquered
Re[2]: Посоветуйте книги/статьи по реверс-инженерингу
От: _Ursus_  
Дата: 26.04.13 17:03
Оценка:
Здравствуйте, SenorProgramador, Вы писали:

SP>http://www.ricardonarvaja.info/


Могли бы и по-английски писать.
Re[3]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 27.04.13 07:57
Оценка:
Здравствуйте, nen777w, Вы писали:

pva>>Не думаю что оля понадобится если освоить иду.

N>Встречал мнения что Оля удобнее чем IDA, хотя что может быть удобнее hexrays ?
N>Ну а еще патчить (если нужно) можно только олей.
Если говорить образно, Оля и Ида — это как Паскаль и Си. И на том и на том инструменте можно сыграть профессионально, но Ида более продвинутый инструмент.
Да, напрямую ида патчить не позволяет. Но это вопрос элементарно решается скриптованием, либо плагинами. Впрочем, многие просто используют hiew, например.

N>А сколько за это берут сейчас? Я просто не в курсе.

Зависит от сложности задачи. Декомпиляция непротекченной делфи не шибко сложная.
newbie
Re[4]: Посоветуйте книги/статьи по реверс-инженерингу
От: nen777w  
Дата: 28.04.13 13:42
Оценка:
N>>А сколько за это берут сейчас? Я просто не в курсе.
pva>Зависит от сложности задачи. Декомпиляция непротекченной делфи не шибко сложная.

Вот вот! А она мне как раз и нужна.
Сейчас сижу расковыриваю алгоритм написанный на Delphi.
В связи с чем возник вот такой таск.
В программе которую я ковыряю используется сторонняя библиотека http://graphics32.org/wiki/, в частности такой класс оттуда: TBitmap32
Я при помощи прекрасного стороннего тула IDR глядя на стандартные классы из VLC которые IDR знает, более-менее разобрался
как Delphi генерирует код для класса, но пока еще туго (надо ставить компилятор и пробовать).
Так вот... Мне нужен скрипт для IDA которому я бы подсунул адрес по которому создан такой TBitmap32 а скрипт, сам бы выудил из данных этого класса
width, height, stride, bpp, и указатель на данные и сгенерировал бы например на выходе файл допустим формата ppm (Portable Pixmap).
Другими словами надо дамп этих битмапов делать что бы дальше с алгоритмом разбираться.

з.ы.
А вообще сейчас заведу наверно тему по IDA c моими глупыми вопросами.... будете меня пинать, наверно, но мне хуже не знать чем бояться спросить
Re[5]: Посоветуйте книги/статьи по реверс-инженерингу
От: Evgeny.Panasyuk Россия  
Дата: 28.04.13 14:38
Оценка: 4 (1)
Здравствуйте, nen777w, Вы писали:

N>Мне нужен скрипт для IDA которому я бы подсунул адрес по которому создан такой TBitmap32 а скрипт, сам бы выудил из данных этого класса

N>width, height, stride, bpp, и указатель на данные и сгенерировал бы например на выходе файл допустим формата ppm (Portable Pixmap).
N>Другими словами надо дамп этих битмапов делать что бы дальше с алгоритмом разбираться.

1. можешь поэкспериментировать с Delphi, например:
uses Graphics;
var
  bm : ^TBitmap;
  w,h : integer;
begin
    bm := 0;
    w := bm^.Width;
    h := bm^.Height;
    write(w,h);
end.

asm:
Project1.dpr.6: bm := 0;
    xor ebx,ebx
Project1.dpr.7: w := bm^.Width;
    mov eax,[ebx]
    mov edx,[eax]
    all dword ptr [edx+$2c]
    mov esi,eax
Project1.dpr.8: h := bm^.Height;
    mov eax,[ebx]
    mov edx,[eax]
    all dword ptr [edx+$20]
    mov ebx,eax
Project1.dpr.9: write(w,h);
    mov eax,[$00413dd4]
    mov edx,esi
    all @Write0Long
    mov edx,ebx
    all @Write0Long
    all Flush

и т.п.
Можешь такие действия сам воспроизвести "на живую", а можешь посмотреть откуда эти методы берут инфу.
Если есть точно такая же версия delphi/библиотеки — можешь прям скомпилировать код на дельфи, который будет дампить всё что нужно.

2. Кстати — изображения в памяти можно найти даже без указателя на TBitmap32.
Вот представь — в каком-то объекте где-то сидит изображение. Что это? — ну с вероятностью 0.971415926 это это просто массив байт аллоцированный целиком, за один раз. Сколько обычное приложение аллоцирует объектов такого характерного размера (если знать точное разрешение, то вообще шикарно)? То есть можно поставить conditional bp на функцию, которая делает аллокацию(какая там в delphi) — и выловить нужный указатель и подождать пока он заполнится...

N>Встречал мнения что Оля удобнее чем IDA, хотя что может быть удобнее hexrays ?


IDA хорош для статического анализа, но для отладки, проверки гипотез "наживую" и т.п., я использовал OllyDbg, в которой много удобных возможностей (+plugin'ы). Да, в IDA есть отладчик, но я его никогда не использовал — ничего сказать не могу.
По OllyDbg рекомендую уже упомянутые статьи-туториалы от Ricardo Narvaja — afaik, у них даже есть перевод на русский(где-то на wasm.ru, должно легко искаться). Да, и не надо пренебрегать crackme заданиями — это поможет получить практические навыки.

Также рекомендую посмотреть на PyDBG — по сути debug api + всякие фишки типа hook'ов, обвёрнутые Python'ом (это просто stand-alone скрипты). Для каких-то сложных/массивных/рутинных динамических скрипто-задач использую его, так как Python я знаю, а скриптовый синтаксис OllyDbg(который afaik asm-оподобный) учить нет никакого желания.
Re[6]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 28.04.13 18:52
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>IDA хорош для статического анализа, но для отладки, проверки гипотез "наживую" и т.п., я использовал OllyDbg, в которой много удобных возможностей (+plugin'ы). Да, в IDA есть отладчик, но я его никогда не использовал — ничего сказать не могу.

IDA хороша для любого анализа. Отладчик там ничуть не хуже оли. Для скриптования поддерживается тот же Python. А если что-то помощнее надо — то С/С++ плагины и Qt интеграция.
newbie
Re[7]: Посоветуйте книги/статьи по реверс-инженерингу
От: Evgeny.Panasyuk Россия  
Дата: 28.04.13 19:02
Оценка:
Здравствуйте, pva, Вы писали:

pva>IDA хороша для любого анализа. Отладчик там ничуть не хуже оли. Для скриптования поддерживается тот же Python. А если что-то помощнее надо — то С/С++ плагины и Qt интеграция.


Ну супер, особенно учитывая что OllyDbg работает только с x32 кодом.
Re[7]: Посоветуйте книги/статьи по реверс-инженерингу
От: Evgeny.Panasyuk Россия  
Дата: 28.04.13 19:13
Оценка:
Здравствуйте, pva, Вы писали:

pva>IDA хороша для любого анализа. Отладчик там ничуть не хуже оли.


Вот буквально ткнул пальцем в небо, и с первого раза попал: такая банальная фича как soft memory breakpoint (не hw), в IDA появилась только в 6.3:

Memory access breakpoints are supported since IDA version 6.3 for the following debuggers:

которая вышла только год назад.
В OllyDbg эта фича как минимум лет десять уже
Re[8]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 28.04.13 20:00
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>В OllyDbg эта фича как минимум лет десять уже

И чё? Какая разница 10 лет фиче или год? Да и учтите, что оля изначально отладчиком была. А ида им стала совсем недавно.
Да и скажу Вам по секрету, бряк на регион памяти нужен ну крайне редко. И в 99.9% случаев можно обойтись без него. Добавили, ну и ладно.
Есть там, конечно, еще недоработки, но новичкам они несущественны.
newbie
Re[9]: Посоветуйте книги/статьи по реверс-инженерингу
От: Evgeny.Panasyuk Россия  
Дата: 29.04.13 06:46
Оценка:
Здравствуйте, pva, Вы писали:

EP>>В OllyDbg эта фича как минимум лет десять уже

pva>И чё? Какая разница 10 лет фиче или год?

afaik, эта фича есть практически во всех тулзах для дебаг-ревёрсинга. например в том же PyDBG.
А разница в том, что хорошо видно кто есть кто.

pva>Да и учтите, что оля изначально отладчиком была. А ида им стала совсем недавно.


Так о том и речь. Поэтому я использовал OllyDbg для отладки.

pva>Да и скажу Вам по секрету, бряк на регион памяти нужен ну крайне редко. И в 99.9% случаев можно обойтись без него. Добавили, ну и ладно.


Он хоть и реализуется как page access modify, но можно использовать как bp на отдельные ячейки памяти.
HW брейкпоинтов всего 4, а этих сколько хочешь.

pva>Есть там, конечно, еще недоработки, но новичкам они несущественны.


Интересно, есть ли в IDA отладчике встроенные фичи-аналоги например для: run trace log, hit count?
Re[10]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 29.04.13 06:57
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP> afaik, эта фича есть практически во всех тулзах для дебаг-ревёрсинга. например в том же PyDBG.

То, что она есть, никак не влияет на ее полезность. Всю жизнь обходился без нее.
Про PyDbg вообще первый раз слышу. Это какая-то сборка напободие Immunity Debugger?

EP>Интересно, есть ли в IDA отладчике встроенные фичи-аналоги например для: run trace log, hit count?

Есть. И даже получше чем в олли. И replay есть и много чего еще, чего в оле не будет еще лет 100 с ее темпами развития.
Я уж не говорю что оля заточена сугубо под х86.
newbie
Re[11]: Посоветуйте книги/статьи по реверс-инженерингу
От: Evgeny.Panasyuk Россия  
Дата: 29.04.13 07:11
Оценка:
Здравствуйте, pva, Вы писали:

pva>Про PyDbg вообще первый раз слышу. Это какая-то сборка напободие Immunity Debugger?


Нет, Immunity Debugger — это сборка на основе OllyDbg, а PyDBG — это отедльные python'ские скрипты (библиотека отладки).
То есть они работают полностью самостоятельно, без OllyDbg.
Ещё есть аналог — WinAppDbg.

pva>Я уж не говорю что оля заточена сугубо под х86.


ну да, это уже упоминалось выше.
Re[12]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 29.04.13 09:13
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>То есть они работают полностью самостоятельно, без OllyDbg.

EP>Ещё есть аналог — WinAppDbg.
Посмотрел WinAppDbg. Это же аналог старинной debug. Какой-то треш для энтузиазистов.
По сути, альтернатив иде сейчас нет. Кил-фичи
— Лучший анализ в статике
— Лучший декомпилятор из известных
— Поддержка кучи процессоров
— Поддержка кучи отладчиков, включая ядреный режим
— Развитые подсистемы скриптов и плагинов
Минусы:
— невменяемая цена на всю эту радость
— поддержка только генуине пользователей

Есть еще мелкие недочеты, но с ними можно жить.
newbie
Re[13]: Посоветуйте книги/статьи по реверс-инженерингу
От: Evgeny.Panasyuk Россия  
Дата: 29.04.13 09:37
Оценка:
Здравствуйте, pva, Вы писали:

EP>>То есть они работают полностью самостоятельно, без OllyDbg.

EP>>Ещё есть аналог — WinAppDbg.
pva>Посмотрел WinAppDbg. Это же аналог старинной debug.

Что за debug?

pva>Какой-то треш для энтузиазистов.


Почему трэш?
Вот нужно запустить программу сто раз с разными параметрами, и сдампить некоторые данные, в некоторых местах, по некоторым условиям. Причём эту процедуру нужно повторять не один раз. Удобно же запустить stand-alone скрипт, а не запускать IDA (пусть и со скриптами внутри) и т.п. Тем более эти библиотеки бесплатны — можно ставить на машины без IDA

pva>По сути, альтернатив иде сейчас нет. Кил-фичи


согласен

pva>Минусы:

pva> — невменяемая цена на всю эту радость

Есть бесплатные предыдущие версии, правда afaik без hex-rays.

pva> — поддержка только генуине пользователей


Это как? Нет поддержки спричаенных версий?
Re[14]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 29.04.13 12:10
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Что за debug?

Я думал Вы старее.

EP>Вот нужно запустить программу сто раз с разными параметрами, и сдампить некоторые данные, в некоторых местах, по некоторым условиям. Причём эту процедуру нужно повторять не один раз. Удобно же запустить stand-alone скрипт, а не запускать IDA (пусть и со скриптами внутри) и т.п. Тем более эти библиотеки бесплатны — можно ставить на машины без IDA

Из аргументов разве что бесплатность принимается. Остальное все можно сделать и в ИДА. Интересно, а скрипты эти антидебаг поддерживают?

EP>Есть бесплатные предыдущие версии, правда afaik без hex-rays.

Кастрированные или слишком старые.

EP>Это как? Нет поддержки спричаенных версий?

Не в том дело. Если ты не оф, то ни багрепорты, ни фичреквести, ни любые доработки от тебя не примут. Какие бы полезные они не были. Там всех делят на владельцев иды и пиратов.
newbie
Re[15]: Посоветуйте книги/статьи по реверс-инженерингу
От: Evgeny.Panasyuk Россия  
Дата: 29.04.13 12:19
Оценка:
Здравствуйте, pva, Вы писали:

EP>>Что за debug?

pva>Я думал Вы старее.

Я в первую очередь подумал о ней, но как это относится к библиотекам отладки — ума не приложу
Если имелся ввиду интерактивный режим — то я такие скрипты писал не в интерактивом режиме.

pva>Интересно, а скрипты эти антидебаг поддерживают?


Не знаю — я использовал в тех случаях когда anti-debug был не нужен, либо подавалось в PyDBG уже в пропатченном виде.

EP>>Это как? Нет поддержки спричаенных версий?

pva>Не в том дело. Если ты не оф, то ни багрепорты, ни фичреквести, ни любые доработки от тебя не примут. Какие бы полезные они не были. Там всех делят на владельцев иды и пиратов.

Ну вроде логично же
Re[16]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 29.04.13 17:24
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Ну вроде логично же

Логично не саппортить нелегалов. А контрибуторов, вроде, всегда поощряли. Не?
newbie
Re[9]: Посоветуйте книги/статьи по реверс-инженерингу
От: Жора Корнев  
Дата: 29.04.13 19:04
Оценка:
Здравствуйте, pva, Вы писали:

pva>Да и скажу Вам по секрету, бряк на регион памяти нужен ну крайне редко. И в 99.9% случаев можно обойтись без него. Добавили, ну и ладно.


При анализе защит обычно хардварными бряками и пользуются, + хардварные быстрее в сотни раз обычных мемори, чтото ты загнул про 99.9%
Re[10]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 29.04.13 19:28
Оценка:
Здравствуйте, Жора Корнев, Вы писали:

pva>>Да и скажу Вам по секрету, бряк на регион памяти нужен ну крайне редко. И в 99.9% случаев можно обойтись без него. Добавили, ну и ладно.

ЖК>При анализе защит обычно хардварными бряками и пользуются, + хардварные быстрее в сотни раз обычных мемори, чтото ты загнул про 99.9%
=) Сдается мне, здесь стоит различать hwbp r/w и такую вещь как бряк на регион (устанавливается в оле на секцию памяти, при доступе к которой нужно брякнуться).
Хардварные бряки никто не отменял и их полезность не оспаривает.
newbie
Re[3]: Посоветуйте книги/статьи по реверс-инженерингу
От: мыщъх США http://nezumi-lab.org
Дата: 29.04.13 21:44
Оценка:
Здравствуйте, nen777w, Вы писали:


N>Сейчас вот читаю мыщиха (Образ мышления IDA Pro)

выкинь каку. оно устарело не на один ледниковый период. сейчас в качестве скриптов в иде используется питон и эта книга совсем не по реверсу.

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

есть одна хорошая книга на анг, но она про обратное инженерное проектирование. там основные концепции реверса. не уверен, что она вам будет интересна, т.к. она вообще не о компьютерах.

pva>>Не думаю что оля понадобится если освоить иду.

N>Встречал мнения что Оля удобнее чем IDA, хотя что может быть удобнее hexrays ?
ольга -- это отладчик. она удобнее иды тем, что автоматически распознает все магические адреса в регистрах. типа POP EAX и в EAX какая-то фигня, а это не фигня, а это указатель на API функцию или базовый адрес загрузки DLL. ида об этом молчит, а ольга автоматически комментирует.

N>Ну а еще патчить (если нужно) можно только олей.

здраствуйте, я ваша тетя. с каких это пор идой нельзя патчить?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[6]: Посоветуйте книги/статьи по реверс-инженерингу
От: nen777w  
Дата: 29.04.13 22:08
Оценка:
Скрипт написал.
Дампит TBitmap32 вот этой библиотеки: http://graphics32.org/wiki/
Использовать так. После кода:

mov     eax, VMT_484348_TBitmap32
call    TBitmap32_Create                ; constructor TBitmap32.Create


Запомнить значение eax, а лучше открыть еще одну въюху ассемблерного листинга и стать курсором туда.
Замапить этот адрес на вот такую структуру (на данный момент что удалось мне расковырять):

struct TBitmap32
{
  _DWORD initTable_0;
  _BYTE f4[44];
  _DWORD bm_height_30h;
  _DWORD bm_width_34h;
  _BYTE f38[8];
  void *pBits_40h;
  _BYTE f44[68];
  BITMAPINFO bmi_88h;
};


Дождаться когда pBits_40h станет не равным 0, т.е. выделять память под битмапу. Прошагать еще один вызов (обычно после этого в эту память копируют даные).
Стать курсором на начало замапленой области, т.е. туда куда указывал eax, Shift+F2 и потом dump_ppm()
Скрипт вот:

//Dump TBitmap32 bitmap script IDC
static dump_ppm()
{
    auto obj_addr, file_name;
    auto fh;
    auto w_addr, h_addr, data_ptr, data_len, n, k;
        
    obj_addr = ScreenEA();
    file_name = ltoa(obj_addr, 16) + ".ppm";
        
    w_addr = obj_addr + 0x34;
    h_addr = obj_addr + 0x30;
    data_ptr = Dword(obj_addr + 0x40);
    data_len = Dword(w_addr)*Dword(h_addr);
    
    fh = fopen(file_name, "wb+");
    
    writestr(fh, "P6\n");
    writestr(fh, ltoa(Dword(w_addr), 10)+"\n"+ltoa(Dword(h_addr), 10)+"\n");
    //writestr(fh, "#Data lenght: " + ltoa(ScreenEA(),16) + "\n");
    writestr(fh, "255\n");
    
    for(n=0; n<data_len; ++n) 
    {
        fputc(Byte((data_ptr+4*n)+2), fh);
        fputc(Byte((data_ptr+4*n)+1), fh);
        fputc(Byte((data_ptr+4*n)+0), fh);
    }
    
    fclose(fh);
}


А теперь вопрос гуру, как бы это еще больше автоматизировать?
Например сделать автоматический вызов скрипта как только указатель на данные станет равен не 0, ну или не сразу а через 2-3 команды call.
Спасибо.

з.ы.
Скрипт тоже попинайте если там что то не так.
Re[4]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 30.04.13 08:33
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>ольга -- это отладчик. она удобнее иды тем, что автоматически распознает все магические адреса в регистрах. типа POP EAX и в EAX какая-то фигня, а это не фигня, а это указатель на API функцию или базовый адрес загрузки DLL. ида об этом молчит, а ольга автоматически комментирует.

Мыщьх, ты вообще дано иду видел? В ледниковом периоде наверно?
newbie
Re[7]: Посоветуйте книги/статьи по реверс-инженерингу
От: pva  
Дата: 30.04.13 08:36
Оценка: 4 (1)
Здравствуйте, nen777w, Вы писали:

N>Например сделать автоматический вызов скрипта как только указатель на данные станет равен не 0, ну или не сразу а через 2-3 команды call.

Для этого прийдется добавить обертку для трассировки скриптом. Смотри в справке "Index of debugger related IDC functions"
newbie
Re[4]: Посоветуйте книги/статьи по реверс-инженерингу
От: nen777w  
Дата: 30.04.13 10:56
Оценка:
N>>Сейчас вот читаю мыщиха (Образ мышления IDA Pro)
М>выкинь каку. оно устарело не на один ледниковый период. сейчас в качестве скриптов в иде используется питон и эта книга совсем не по реверсу.
Всеравно полезно почитать было. Тем боле я ж только эту главу и читал.

М>по реверсу у меня выходила всего одна книга -- фундаментальные основы хакерства. там показано как идентифицировать основные структуры языков высокого уровня. впрочем, она тоже сильно устарела, а мир ушел вперед.

Спасибо гляну.

N>>Ну а еще патчить (если нужно) можно только олей.

М>здраствуйте, я ваша тетя. с каких это пор идой нельзя патчить?
Ну можно конечно, но мороки больше как мне показалось (хотя вот честно взять скрипт и попробовать я не пробовал).
В оле как то проще, ассемблировать + очень удобная фитча Оли добивать остаток длины команды nop-ами, IDA такое не делает.
Ну а потом Write to exe и все.
Re[11]: Посоветуйте книги/статьи по реверс-инженерингу
От: Аноним  
Дата: 02.05.13 07:25
Оценка:
pva>Про PyDbg вообще первый раз слышу. Это какая-то сборка напободие Immunity Debugger?

есть еще pykd ( pykd.codeplex.com ) для windbg.
например с помощью него на windbg портировали mona.py ( http://redmine.corelan.be/projects/mona — автоматизация поиска и эксплуатации уязвимостей )
Re: Посоветуйте книги/статьи по реверс-инженерингу
От: lowa  
Дата: 24.05.13 19:38
Оценка:
Я использовал книгу Криса Касперски "Искусство дизассемблирования" и статьи Рикардо Наваха
Re: Посоветуйте книги/статьи по реверс-инженерингу
От: HolyNick  
Дата: 02.06.13 14:34
Оценка:
Почему-то кажется, что выковыривать какой-то нетривиальный алгоритм из ассемблерного кода это жестокое извращение.
Если алгоритм(например, обработка изображения) на C++ перевести на асм, уже непросто понимать что происходит, а если он еще и оптимизирован(переставлены команды асм'а итп) то что происходит понять становится почти невозможно (то есть проще самому написать).
Re[2]: Посоветуйте книги/статьи по реверс-инженерингу
От: Evgeny.Panasyuk Россия  
Дата: 02.06.13 17:06
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Почему-то кажется, что выковыривать какой-то нетривиальный алгоритм из ассемблерного кода это жестокое извращение.

HN>Если алгоритм(например, обработка изображения) на C++ перевести на асм, уже непросто понимать что происходит, а если он еще и оптимизирован(переставлены команды асм'а итп) то что происходит понять становится почти невозможно (то есть проще самому написать).

ну так reverse engineer'ы не пальцем деланы
Re[2]: Посоветуйте книги/статьи по реверс-инженерингу
От: nen777w  
Дата: 02.06.13 20:53
Оценка:
HN>Почему-то кажется, что выковыривать какой-то нетривиальный алгоритм из ассемблерного кода это жестокое извращение.

Ну вот как раз похожим делом занимался недавно. Главное ИМХО как можно точнее восстановить структуры, а дальше зная примерно как пишуться приложения на высокоуровневых ЯП и как должен работать алгоритм уже дело техники и навыков.
У меня ушло на все около 5-ти дней.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.