Патчинг бинарика

Discussion in 'Реверсинг' started by CyberSun, 26 May 2009.

  1. CyberSun

    CyberSun New Member

    Joined:
    2 May 2009
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Всем привет, вопрос такой:
    Как пропатчить бинарик с такого простенького исходника:
    #include <stdio.h>

    main()
    {
    printf("First message\n");
    printf("Second message\n");
    }

    Собрали, отдизасмили
    [​IMG]
    Получили адреса двух printf'ов 004012DC и 004012E9...Как пропатчить экзешник этот, чтобы прога доходила до 004012DC(первого printf) и не делала call _printf, а заменить на jmp 004012E9 тоесть сразу прыгала на выполнение второй функции. Открываю в WinHex'e экзешник, [​IMG]а что дальше искать???как патчить???Адреса что-то не те вообще???Помогите разобраться новичку.
     
  2. zeppe1in

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

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    грузиш в olly, там патчиш как надо и сохраняеш изменения.
     
  3. 0rs

    0rs Member

    Joined:
    30 Dec 2008
    Messages:
    70
    Likes Received:
    23
    Reputations:
    3
    Надо из адресов, что в дизасме, вычесть image base.
    004012DC-00400000=000012DC
    И в интервале от 12DC до 12E8 забить байт 90
     
    #3 0rs, 26 May 2009
    Last edited: 26 May 2009
  4. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    насколько я понял, то байты по смещениям 12DC-12E1 нужно заменить на 0x90, тогда проскипается первое сообщение, и сразу выведется второе, и стек не порушится
     
  5. CyberSun

    CyberSun New Member

    Joined:
    2 May 2009
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Открыл в winhex'e бинарик(как на скрине выше привел), но не могу найти 000012DC(с вычетом imagebase'a)???Как найти этот адрес?
     
  6. 0rs

    0rs Member

    Joined:
    30 Dec 2008
    Messages:
    70
    Likes Received:
    23
    Reputations:
    3
    Меню Position/Go To Offset...
    Чтобы увидеть шетнадцатиричное представление в меню View убрать галочку Text Display Only
     
  7. neprovad

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

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    на мой взгляд winhex не самое удобное средство для редактирования exe и dll
    лучше hiew :)
     
  8. CyberSun

    CyberSun New Member

    Joined:
    2 May 2009
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    так нашли 12DC [​IMG]

    Переставил другой winhex, а в прежнем не было даже меню Position. Теперь такой вопрос:
    Нопить мне не нужно (почему кстати по 12Е1) мне нужно заменить на "JMP 004012E9"(адрес второй ф-ции)..другими словами в hex редакторе открыв бинарик и найдя смещение 12DC заменить опкодами на команду "JMP любой адрес" сохранить изменения и запустив файл увидеть только один printf в выводе(так как первый мы заменим на безусловный переход).
     
    #8 CyberSun, 26 May 2009
    Last edited: 26 May 2009
  9. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Дай экзешник свой
     
    _________________________
  10. CyberSun

    CyberSun New Member

    Joined:
    2 May 2009
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    http://rapidshare.com/files/237460563/1.exe.html
     
  11. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Начиная с 004012D7 впиши 68 E4 12 40 00 C3
    Это правда не джамп, но сработает так как тебе нужно
     
    _________________________
  12. CyberSun

    CyberSun New Member

    Joined:
    2 May 2009
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    На сколько я понимаю это опкоды 68 E4 12 40 00 C3 где можно с ними более детально ознакомиться и почему начиная с 004012D7, если не jmp то что тогда, просто для себя хочу разбираться а не тупо поросил - подсказали...если можно немного подробней
     
  13. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    68 - push
    E4 12 40 00 - адрес перехода
    C3 - retn

    Список опкодов http://wasm.ru/baixado.php?mode=doc&id=129
    Начиная с 004012D7 потому что левая пятка так пожелала
     
    _________________________
    2 people like this.
  14. CyberSun

    CyberSun New Member

    Joined:
    2 May 2009
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Будем разбираться..Спс