Reverse Engineering (декомпиляция.lib)

Discussion in 'Реверсинг' started by Navlib_lib, 2 Feb 2020.

  1. Navlib_lib

    Navlib_lib New Member

    Joined:
    1 Feb 2020
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    Дело в том, что когда я открываю этот g_nav.obj, у меня нет там нормального кода в С, там всё на Эльфийском
    [​IMG]
     
  2. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    А ну да... Гггг... Кхм.
    Слева поищи NAV_CreateNode и выложи текст этой функции.

    Внутри тега CODE желательно. На плюсик нажимай (четвертый справа от смайлика) и выбирай "code".

    Господе мне хоть щас в техподдержку
     
  3. mankurt13

    mankurt13 Well-Known Member

    Joined:
    18 Oct 2019
    Messages:
    378
    Likes Received:
    1,532
    Reputations:
    3
    Щас эльфы гномам холивар за такие слова устроят. В ольге ПКМ - search for - constants - 0x2BC. В чем твоя проблема по константе или по референсу на строку найти эту функцию?
     
  4. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    Там много может быть. Он же асма не знает :)
     
  5. Navlib_lib

    Navlib_lib New Member

    Joined:
    1 Feb 2020
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    Code:
    .text:000002A8                 push    ebp
    [​IMG]
     
  6. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    О. Ну так ты сразу и нашел что надо.
    .text:000002B3 - видишь справа чо ? 2BCh
    (а у меня по Ctrl+V чото не вставляет зараза).

    Вот это оно и есть. Теперь нажмакай на кнопу HexView-A и там ищи такую же цифру.
     
  7. Navlib_lib

    Navlib_lib New Member

    Joined:
    1 Feb 2020
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    Добрый день!
    Мы тут Пентагон пытаемся взломать. А про Эльфов я не при делах, первый раз в приходится в эти файлы, которые больше напоминают бинарный мордор, заглядывать:D

    Дак там нет 2BCh, там же 000002A8 и два таинственных "push" и "ebp". Откуда там 2BCh?:D

    А HexView тоже показывает те же 2A8 только
    [​IMG]

    (Дак я то через ВК изворачиваюсь, чтобы ссылку получить, у меня тоже через CTRL-V наверно не вставится).
     
  8. mankurt13

    mankurt13 Well-Known Member

    Joined:
    18 Oct 2019
    Messages:
    378
    Likes Received:
    1,532
    Reputations:
    3
    В конце строчки BC 02, писи же литтл эндиан, в нем числа задом через перед кодируются. Вероятней всего тупая правка этой константы не поможет потому что:
    Code:
    .text:000002CB                                                 loc_2CB:                                ; CODE XREF: _NAV_CreateNode+10↑j
    .text:000002CB 53                                                              push    ebx
    .text:000002CC 56                                                              push    esi
    .text:000002CD 57                                                              push    edi
    .text:000002CE 68 FD 02 00 00                                                  push    2FDh
    .text:000002D3 68 50 0B 00 00                                                  push    0B50h
    .text:000002D8 FF 15 40 26 00 00                                               call    dword ptr _gi+88h
    .text:000002DE 8B F0                                                           mov     esi, eax
    .text:000002E0 B9 D4 02 00 00                                                  mov     ecx, 2D4h
    .text:000002E5 33 C0                                                           xor     eax, eax
    .text:000002E7 8B FE                                                           mov     edi, esi
    .text:000002E9 F3 AB                                                           rep stosd
    
    Дальше по сценарию вызов какого-то метода, возвращающего указатель, по которому что-то забивается нулями. Если память там реально не выделяется, а используется готовый буфер, он будет рассчитан на 700 нодов.
     
    DartPhoenix likes this.
  9. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    А в самом конце видишь BC 02 ? Прямо на твоем же скриншоте, выделен рамочкой даже.
    Обратный порядок байт. Это и есть твой 2BC. Его тебе и надо найти в твоем EXE - файле. Если ты просто изменишь его здесь - ничего не поменяется. Надо будет перекомпилить этот exe чтобы поменялось.
    Так что теперь берешь и вот это все типо 66 81 38 BC 02 7C 11 68 ищешь внутри OllyDbg. Там изменяешь, сохраняешь на диск и все.

    Но весьма вероятно что работать не будет. Хотя хрен его знает. Всякое случается :)

    ============
    Уточним на всякий случай. BC 02 можно поменять на FF 0A (например для перестраховки).
     
  10. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    А. В принципе... в принципе... ты это же можешь сделать не в Olly а в любом редакторе который тебе больше нравится.

    Тебе Olly все-равно ничем не поможет, только сложнее будет.
     
  11. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    Кратко если - видимо это таки вопрос либо добрейшей души нуба с отладчиком - либо коммерц.
    Миллионов баксов там потратить не на что. Надо просто объяснить что там того кода с гулькин нос. Что - то в радиусе стоимости пивка, возможно с суши :)
     
  12. mankurt13

    mankurt13 Well-Known Member

    Joined:
    18 Oct 2019
    Messages:
    378
    Likes Received:
    1,532
    Reputations:
    3
    Кстати 2D4*4=B50, аргумент метода. Или не кстати. Если этот метод и есть выделение памяти, то надежда есть.
     
  13. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    Да ну в баню сидеть разбирать... в ольке запустил - посмотрел где падает. Нашел где выделяется память - выделил побольше.
    Скорей всего игрушка заточена под слабенькие машины - так и экономили.
     
  14. Navlib_lib

    Navlib_lib New Member

    Joined:
    1 Feb 2020
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    Дак мы же всё это время искали 694, а 2BC - 700.

    Как у нас из

    [​IMG]

    получилось 66 81 38 BC 02 7C 11 68?

    Откуда дополнительные 7C 11 68, если строка закончилась на BC 02?

    Надежда всегда есть, Надежда Павловна с нами:D

     
  15. mankurt13

    mankurt13 Well-Known Member

    Joined:
    18 Oct 2019
    Messages:
    378
    Likes Received:
    1,532
    Reputations:
    3
    Так он не дает игрулю, остается только как Кашпировский ее через экран позитивной энергией заряжать.
     
  16. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    Ну можешь 2B7 конечно поискать примерно так же, но вообще есть сильное мнение что ты уже нашел все что надо.
    UPD: остальные цифры - те что строкой ниже. Это нужно просто для того чтобы найти в точности ту строку которую тебе нужно.
     
  17. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    Да ну... нужна она кому :)
     
  18. Navlib_lib

    Navlib_lib New Member

    Joined:
    1 Feb 2020
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0

    Вот сие творение. Вы должны вспомнить этот шедевр:D

    https://www.old-games.ru/game/download/get.php?fileid=183&modal=1 Вроде то, что нужно ,если кто-то хочет сам попробовать поковыряться
     
  19. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    Это хорошо. Но таки да. Это было твое первое условие где 700. Где-то ниже найдешь точно так же и 2B7. И точно так же тебе надо будет его поменять. Но не сразу.
    Поменяй сначала первое. Если вывалится сообщение что типо вышел ты за пределы диапазона - меняй и второе. Если получишь вследствие этого AccessViolation - тогда все. Сушите тапки.
     
  20. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    О Господе Иисусе. Братва.... как-то так оно называлось :)
    Адовая игрушка была, да :)