Сейчас на форуме: asfa (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Отладка x64 программ |
Посл.ответ | Сообщение |
|
Создано: 30 марта 2010 19:20 · Поправил: Dzher · Личное сообщение · #1 Здравствуйте. Столкнулся с такой проблемой. Для изучения модуля (библиотеки dll) одной программы использовал дебаггер Olly. Успешно нашел нужные джампы, занопил некоторые команды, в hex редакторе пропатчил соотв. образом длл. Всё ОК, но теперь появилась необходимость тоже самое проделать с дллкой для х64 версии программы. Правильно ли я понимаю, что пропатчить черех hex редактор мне, по аналогии с версией х86, х64 библиотеку не удастся и надо заново проходить процесс отладки в дебаггере? Проблема в том, что я не могу найти удобный и функциональный дебаггер для х64 программ. Изучаю в данный момент WinDbg, но что-то у меня никак не получается выйти из системных дллок после бряка в нужную программу ![]() ![]() |
|
Создано: 30 марта 2010 20:58 · Личное сообщение · #2 Dzher пишет: Правильно ли я понимаю, что пропатчить черех hex редактор мне, по аналогии с версией х86, х64 библиотеку не удастся и надо заново проходить процесс отладки в дебаггере? Не обязательно, зависит конкретно от случая..... что меняешь и на что. Dzher пишет: Проблема в том, что я не могу найти удобный и функциональный дебаггер для х64 программ. IDA ![]() ![]() |
|
Создано: 30 марта 2010 21:27 · Личное сообщение · #3 |
|
Создано: 30 марта 2010 22:18 · Личное сообщение · #4 MasterSoft пишет: Не обязательно, зависит конкретно от случая..... что меняешь и на что. В принципе, меняю только 2 джампа. Потом в гекс редакторе нахожу нужный оффсет поиском гекс значения, например, 83BE AC000000 00 75 и меняю 75 на EB. Тоже самое найти в дллке х64 не получается. Может ты знаешь какие-то другие варианты? MasterSoft пишет: IDA Не знаю почему, но в Иде данная программа не хочет аттачится. Через WinDbg аттачится без проблем. Archer пишет: Топиков типа "что есть для реверса в х64" уже хватает, погугли, там основные тулзы описаны, потом выбирай и юзай. Хотя согласен, что софта пока не фонтан. Уж поверь, я гуглю уже с неделю. Все что нашел полезного - Fdbg, но он крайне глючный и неудобный. Вот потому и интересно, как в таких случаях стоит поступать, то есть дллки по функциональности одинаковые, но одна для х86 версии программы, а другая для х64. Может там просто меняются как-то гекс значения команд? Уроков по WinDbg тоже много не нашел, как с бряка вернутся в свою прогу, а не идти гулять по системным дллкам - я так и не понял. В основном нашел объяснения, как юзать WinDbg для анализа crash dumpов. ![]() |
|
Создано: 30 марта 2010 22:29 · Личное сообщение · #5 Dzher пишет: Может ты знаешь какие-то другие варианты? Ды, просто тупо пербери варианты: 83????0000000075 или 83BEAC????????75 или 83??AC0000000075 ну и т.д. Хотя ИМХО это тупой вариант, не по-крякерски как-то. ![]() Dzher пишет: Уж поверь, я гуглю уже с неделю. Ну в таком случае сам всё уже видел и знаешь. От этого топика дебагеры не появятся. Так что придётся обходится тем что есть. ![]() ![]() |
|
Создано: 31 марта 2010 12:31 · Поправил: Dzher · Личное сообщение · #6 MasterSoft пишет: Ды, просто тупо пербери варианты: 83????0000000075 или 83BEAC????????75 или 83??AC0000000075 ну и т.д. Хотя ИМХО это тупой вариант, не по-крякерски как-то. Эх, перепробовал подобный поиск по маске. Выполнял кучу замен - так ничего и не добился. Буду теперь спрашивать на англоязычных форумах по реверсу. Спасибо за попытку помочь. ![]() |
|
Создано: 01 апреля 2010 08:51 · Личное сообщение · #7 |
|
Создано: 01 апреля 2010 12:35 · Личное сообщение · #8 |
|
Создано: 01 апреля 2010 14:05 · Личное сообщение · #9 |
|
Создано: 01 апреля 2010 14:23 · Личное сообщение · #10 pavka пишет: Лучше отладка. Хотя какие то куски можешь попробовать траслировать 64-х битный код Хм, нашел вот это ref.x86asm.net/ Выходит, что опкоды основных инструкций должны совпадать. Мда. прийдется всё же разбираться с этим WinDbg. Может кто-то, кто с ним работал подскажет, как после бряка на адресс в памяти вернутся в свою прогу, а не уйти блуждать по системным библиотекам? ![]() |
|
Создано: 04 апреля 2010 17:04 · Личное сообщение · #11 А по сигнатуре никак не найти? Не по тупой из байтов, а чуть головой подумать, типа привязаться к вызовам апи и тд. А бряк на адрес памяти срабатывает там, где и положено ему. Если читают/пишут из системной либы-стало быть, такова судьба. И виндбг тут не при чём, сиди и тыкай запуск дальше, пока нужное не выпадет. ![]() |
|
Создано: 04 апреля 2010 21:00 · Личное сообщение · #12 Archer пишет: А по сигнатуре никак не найти? Не по тупой из байтов, а чуть головой подумать, типа привязаться к вызовам апи и тд. А бряк на адрес памяти срабатывает там, где и положено ему. Если читают/пишут из системной либы-стало быть, такова судьба. И виндбг тут не при чём, сиди и тыкай запуск дальше, пока нужное не выпадет. Я уже разобрался. Два вечерка посидел с документацией и гуглом и в итоге всё ок. Windbg очень мощная штука, теперь только им и буду пользоваться ![]() ![]() ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Отладка x64 программ |