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...
Пока на собственное сообщение не было ответов, его можно удалить.