Сейчас на форуме: Magister Yoda, subword (+9 невидимых) |
eXeL@B —› Основной форум —› Как в ОллиДбг определить откуда в данное место сделан переход ? |
Посл.ответ | Сообщение |
|
Создано: 18 июня 2008 10:37 · Личное сообщение · #1 |
|
Создано: 18 июня 2008 10:47 · Личное сообщение · #2 |
|
Создано: 18 июня 2008 11:22 · Личное сообщение · #3 |
|
Создано: 18 июня 2008 11:53 · Личное сообщение · #4 |
|
Создано: 18 июня 2008 12:00 · Личное сообщение · #5 |
|
Создано: 18 июня 2008 12:11 · Личное сообщение · #6 норкоманскей метод...я в вб так делал. пришлось Trace Into, т.к. я проскакивал и у меня прога каталась 4,5 часа...зато монег как в хакерских фильмах Если расклад theCollision пишет: mov eax,0xHHHHHH add eax,0xHHHH inc eax Xor eax,0xHHHH jmp eax Тогда можно тупо ставить бряк на место куда прыгает из "откуда-то" и смотреть все регистры... ----- iNTERNATiONAL CoDE CReW |
|
Создано: 18 июня 2008 12:32 · Поправил: Hellspawn · Личное сообщение · #7 |
|
Создано: 18 июня 2008 12:37 · Личное сообщение · #8 |
|
Создано: 18 июня 2008 12:54 · Личное сообщение · #9 |
|
Создано: 18 июня 2008 13:07 · Личное сообщение · #10 |
|
Создано: 18 июня 2008 13:16 · Личное сообщение · #11 |
|
Создано: 18 июня 2008 13:21 · Личное сообщение · #12 |
|
Создано: 18 июня 2008 13:53 · Личное сообщение · #13 Есть кусок памяти на который поставил железный останов и ткнул на ф9, выплыл на иструкции mov [edi+eax+0xHH],al и мне щас надо узнать, как в это место попали ? потому что выше вижу махинации подобные взятию значиний из локальных переменных, т.е. очень похоже на начало ф-ции. Кто вызвал это ф-цию не понятно, т.к. воврата невидно ----- My love is very cool girl. |
|
Создано: 18 июня 2008 14:21 · Личное сообщение · #14 |
|
Создано: 18 июня 2008 14:29 · Поправил: pool · Личное сообщение · #15 В данной ситуации выход - в том, чем большинство постивших тут - видимо не сильно волокут, Conditional BP называется. Вот тут олли2 работает отлично. А потом уже обратно трассировать. pavka пишет: А другого и не надо это быстрее и продуктивней чем трейс +1, но тут знания нужны! P.S: сорри за флейм, впредь буду только в новичках постить и не вмешиваться в дискуссию ветеранов |
|
Создано: 18 июня 2008 14:38 · Личное сообщение · #16 |
|
Создано: 18 июня 2008 14:44 · Личное сообщение · #17 |
|
Создано: 18 июня 2008 15:40 · Личное сообщение · #18 |
|
Создано: 18 июня 2008 18:33 · Личное сообщение · #19 |
|
Создано: 18 июня 2008 21:00 · Личное сообщение · #20 У Вас тут всегда такой пустой флейм, или вы только на ранги смотрите постивших и принимаете к сведению - читать пост или нет? Я выше написал, что бряк с условием - выход из данной ситуации, это аналогично трейсу, про который [HEX] писал. Ice-T пишет: интересный вопрос.. можно плаг написать.. но на практике, я например, трейсил дальше или просто смотрел в стек, куда произойдет возврат - да, кроме плага, ещё автора проги вычисли, и забери у него сорсы, тогда вообще ненадо искать ничего. |
|
Создано: 18 июня 2008 22:25 · Личное сообщение · #21 [HEX] пишет: стек можно раскрутить, но мы увидем только вызовы каллов, а с джампами облом. Ну если переходы делать так как выше предложил Hellspawn, то и они засветятся в ESP-4 Sh[AHT] пишет: SoftIce рулит - показывает MSR FromIP при hardware breakpoint. К сожалению не на всех процах этот фокус работает. И опять же: Ice-T пишет: можно плаг написать.. [HEX] пишет: Как так не видно? В стеке полюбому возврат есть!!! Смотри внимательней. Во многих протах на антиотладке висит такая фигня, которая подчищает весь стек до системных значений и прыжком отправляет к терминатору. theCollision, не скупись на информацию, расскажи, что за жертва, не стесняйся, кидай сюда простыню из функции. Чем больше расскажешь тем быстрее помогут. ----- Всем привет, я вернулся |
|
Создано: 18 июня 2008 23:19 · Личное сообщение · #22 Bitfry Да все проще ))) Мне просто надо знать, насколько подобная ситуация доставляет сложности ? Еще раз опишу ситуацию, человек анализирует код и видит, что есть кусок памяти. Ему стало интересно, кто эту память решит обновить, т.е записать туда значение. Он ставит железный бряк по этому байту. Жмет на выполнение, аналог в олли ф9. В конечном итоге прога брякается и показывается команда которая пыталась изменить этот байт. Анализируя код, реверсер видит что сюда был прыжок откуда то, вероятно jmp но может и jXXX\jnXXX или может быть call, но он также видит что нет адреса возврата наверху в стеке. Как ему узнать кто сюда прыгнул ? Адрес команды, которая совершила переход ? Думаю, все понятно итак. Некоторые форумчане предложили трейс, но может ли быть чтото еще ? ----- My love is very cool girl. |
|
Создано: 18 июня 2008 23:56 · Личное сообщение · #23 |
|
Создано: 19 июня 2008 01:17 · Личное сообщение · #24 pool пишет: У Вас тут всегда такой пустой флейм, или вы только на ранги смотрите постивших и принимаете к сведению - читать пост или нет? Я выше написал, что бряк с условием - выход из данной ситуации Хм.. не хоццо мериццо членами, но ВЫ товарисч мимотазика ходите, причем очень часто! Надо для начала хоть какой-то опыт иметь в трейсинге, чтобы утверждать обратное(естественно речь не идет о стандартных возможностях в оле) Возьмите для начала VMProtect поставите любой бряк(!), какой ВАМ нравиццо и нажмите F9(естесно без применения примат команд начинающихся с Trace и Animate) И попробуйте вернуццо без трейсинга в тело предшествующего исполнителя байт-кода(?) хм.. думаю, ВЫ там должны будите заметить поксореную кашу в стеке %)) Но даже не будем забегать далеко, а просто взять протектор нашего мембера cracklab`а Elemental Protector(думаю, у вас быстро отпадут сомнения насчет компетентности в знаниях реверсеров лаба) Там только один прыжок в выделенную область памяти достоин аплодисментов. Попробуйте импорт посмотреть, ну или OEP в "стеке"(бу-го-га) поискать/восстановить Эт вам не бота от доктора-веба реверсить ;)) Это в топике не флейм, а бурные соприкосновения разных точек и стилей в реверсе - каждый пишет, о том что знает и умеет И называть всех тут ламоками не стоит у каждого свой уровень, если потребуеццо помощь в чем-то серьезном появацца те, которые больше знают P. S. По сабжу: у всех дорога будет одна - вначале трейс, потом парсер в ИДЕ и замкнеццо все на эмуле(тяга будет к универсальному) – ИМХО %)) PP. S. А можно и не париццо, а просто писать скрипты(в большинстве случаев(80%) этого достаточно будет) и ждать обновлений ODbgScript и PhantOm! ----- ЗЫ: истЕна где-то рядом, Welcome@Google.com |
|
Создано: 19 июня 2008 03:31 · Личное сообщение · #25 Demon666 пишет: Возьмите для начала VMProtect поставите любой бряк Тут речь идет о VM protecte разве? или о VM ?Demon666 пишет: Попробуйте импорт посмотреть, ну или OEP в "стеке"(бу-го-га) поискать/восстановить ОЕП и импорт и посмотреть и восстановить не проблема сложность в разнообразной адресации и большим количеством регионов выделеной памяти как впрочем и спласинг |
|
Создано: 19 июня 2008 06:03 · Личное сообщение · #26 pavka кхе-кхе, все мы знаем, что если даже в природе останиццо один hiew (кста если че, pool чет делал уклон на консольное GUI в не положительную сторону) ты все равно будешь продолжать ломать с завидной постоянностью проты ;) pavka пишет: Тут речь идет о VM protecte разве? P. S. По сабжу: да по-сути в топе та идет разговор о примитивных элементах обфускатора и морфа, то тут никаких сложностей даже для среднего уровня реверсера и не будет - ИМХО(ты кстати ап этом уже выше писал) смысл-то жевать, жеваное?.. PP. S. Вот и подумал че разговаривать о естественном, можно же и о более сложных вещах(а то анпакнут UPX и думают что всех победиле) ----- ЗЫ: истЕна где-то рядом, Welcome@Google.com |
|
Создано: 19 июня 2008 11:34 · Личное сообщение · #27 Demon666 пишет: Надо для начала хоть какой-то опыт иметь в трейсинге, чтобы утверждать обратное(естественно речь не идет о стандартных возможностях в оле) - ничего не понял. Demon666 пишет: у вас быстро отпадут сомнения насчет компетентности в знаниях реверсеров лаба - про не компетентность я не говорил, и нечего меня провоцировать, я писал, что те, кто тут кто постил (не все, но и ты в частности) по-видимому мало работали с условными бряками в олли, так что вначале пойми что пишут, а потом коментируй. Demon666 пишет: И называть всех тут ламоками не стоит у каждого свой уровень - я не называл, читай выше! Elemental Protector - буду уже смотреть как время появится, но т.к. VMP используется на нужных программах - он в первую очерь под исследование попадает. По-поводу твоего поста, так это чистый флейм, если у тебя крик души и надо высказаться - пиши в личку. А так - напиши чем не подходит условный бряк, для сохранения шагов работы проги? |
|
Создано: 19 июня 2008 13:57 · Личное сообщение · #28 pool пишет: надо высказаться - пиши в личку А че тут шифроваццо-то, пусть знают все, в чем причина моих постов в твою сторону Мне лично нравится, что пишет [HEX] и хотелось бы, чтобы он больше писал здесь на форуме (оригинально, интересно и в вебкодинге шарит(иногда мне его посты помогают осваивать слабые места в "этой области")) С твоей стороны идут всякие там приколы в его сторону – то мля, он хреново отзываеццо о боте доктора-веба, то вот тут твой вариант с Conditional BP предпочтительнее чем его с трейсом(да еще это как-то стремно написано), мну это не нравиццо!!(надеюсь доходчиво объяснил) pool пишет: А так - напиши чем не подходит условный бряк, для сохранения шагов работы проги? Речь идет вот примерно о таких технологиях www.hbgary.com/products.html Description: HBGary Inspector speeds team reverse engineering of software binaries. Inspector integrates dynamic runtime tracing with dataflow and static code analysis. Captured test data is recorded in a team-member shared database for further analysis with automated scripts and interactive graphing. Packed, obfuscated, and self-modifying malware binaries resist static disassembly. Anti-debugging tricks hinder runtime analysis. However, malware must unpack and de-obfuscate itself to execute. Inspector defeats many anti-debugging tricks and recovers true program instructions and live memory evidence as malware operates. Dynamic analysis provides accurate information about malware behavior. HBGary Inspector can trace data buffers and packets as they propagate in memory, saving countless hours and days of work for the Reverse Engineer. Complex control flow paths are mapped with interactive navigation graphs. Runtime code coverage is indicated and measured. Inspector is extensible with an exposed application program interface (API) and a powerful scripting system for analysis automation (естесно это надо поюзать, чтобы понять всю соль, а еще лучше быть одним из разработчиков), а уже потом тут заявлять, что Conditional BP лучше технологий Tracers(еще надо учитывать, что это одна из примитивных технологий) ----- ЗЫ: истЕна где-то рядом, Welcome@Google.com |
|
Создано: 19 июня 2008 14:26 · Личное сообщение · #29 pool я чего-то вообще не врубаюсь как условный бряк поможет определить откуда передали управление. расскажи идею подробней. с трассировкой всё понятно - пишется трасса и потом назад вернуться можно, а с условным бряком как? именно узнать откуда пришло управление. т.е. ситуация такая: у нас сработал бряк по обращению к памяти или ещё какой, вот мы стоим на команде - как узнать откуда пришли условный бряк поможет только если мы знаем нужный нам адрес - т.е. адрес команды перехода, и написать условный бряк таким образом чтобы он срабатывал только при переходе с этого адреса. но этого адреса мы НЕ ЗНАЕМ. как ещё тут помогут условные бряки я хз. |
eXeL@B —› Основной форум —› Как в ОллиДбг определить откуда в данное место сделан переход ? |