Как найти процедуру и выдрать код

Discussion in 'Реверсинг' started by tekton, 3 Jun 2008.

  1. tekton

    tekton Elder - Старейшина

    Joined:
    2 Jun 2008
    Messages:
    73
    Likes Received:
    3
    Reputations:
    0
    Надо найти процедуру и выдрать код

    Привет всем! Есть программа, телефонный менеджер. В ней штук 13 всяких функций (резервное копирование, синхронизация, создание фоновых рисунков, просмотр мультимедии...) Мне надо выдрать одну функцию. С чего начать? Как найти место откуда она начинает выполняться? Заранее спасибо.
     
    #1 tekton, 3 Jun 2008
    Last edited: 3 Jun 2008
  2. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    //исходим из того, что программа не запакована
    Допустим, то, 4то(ProTeuS, сорри :) ) ты называешь функцией, это код, выполняющийся по нажатию кнопки или пункта меню. Тогда в программе этот код выполняется в основной оконной процедуре при wParam=WM_COMMAND и lParam=ID этой кнопки или меню(id кнопки или айтема меню можно посмотреть в ресурсах Restorator'ом, ResHack'ом и т.п., если ре4ь не идёт о делфе)
    Зна4ит твои действия - дойти в отлад4ике до создания окна (либо вру4ную, либо поставив бряк на CreateWindowEx, DialogBoxParam, DialogBoxIndirectParam), посмотреть, 4то передаётся им в параметре wndproc, и посмотреть на код по этому адресу. Там находишь (в OllyDbg это после анализа написано в комментарии) сравнение с WM_COMMAND, внутри кода обработки WM_COMMAND находишь сравнение с ID тебя интересующим. Вот после него и идёт обработка нажатия на айтем.

    PS Это 4исто формально для общего слу4ая, в конкретных слу4аях можно придумать 4то-нибудь по-проще.;)
     
  3. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    И в дополнение можно тебя расстроить, тупой копипаст не прокатит)) Рипнутый код придеццо обрабатывать напильником
     
    2 people like this.
  4. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    Напильником может послужить плагин для Ollydbg - Coderipper (поправьте меня если не так написал). В последний раз видел в подборке плагов с http://reversengineering.wordpress.com/ , но думаю можно и так найти отдельным файлом.
     
  5. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    то, 4то посоветовал neprovad, TMG Ripper Studio, IDA + MASM = выдрать можно абсолютно все