eXeL@B —› Основной форум —› Реверсерам Дельфи |
Посл.ответ | Сообщение |
|
Создано: 05 июня 2012 15:03 · Личное сообщение · #1 Какой может быть исходный код для вот такого "странного" фрагмента кода в экзешнике, написанном на Дельфи: Code:
В пропущенном фрагменте ничего полезного для ответа нет. У меня есть идея, что это какой-то "неправильный" while (два jmp подряд обычно соответствуют двум вложенным циклам while плюс возможная оптимизация, но здесь нет возвратов). Будут какие-то продуктивные идеи? ЗЫ Не похоже, чтобы программу патчили, это создал компилятор (Дельфи 7). |
|
Создано: 05 июня 2012 15:07 · Поправил: drone · Личное сообщение · #2 |
|
Создано: 05 июня 2012 15:07 · Личное сообщение · #3 |
|
Создано: 05 июня 2012 15:12 · Личное сообщение · #4 |
|
Создано: 05 июня 2012 15:25 · Поправил: F_a_u_s_t · Личное сообщение · #5 псевдокод: label l1, l2; begin if тыры = пыры then goto l1 else goto l2; l1: код: ..... l2: код: end; Я и не такое наркоманство видел. Add: по тому куску что ты привел сложно судить, ибо зависит что там выше. Add2: Вкурил: Проверяем символ если не пробел То - 004DB657 jmp 004DB65E выходим 004DB659 jmp 004DB911 иначе: 004DB65E mov edx,dword ptr [ebp-14] 004DB661 mov eax,4DB944; ' ' 004DB666 call @LStrPos 004DB66B test eax,eax >004DB66D jg 004DB911 прыгаем на второй jmp а куда он ведет одному богу известно. repeat until |
|
Создано: 05 июня 2012 15:34 · Поправил: crypto · Личное сообщение · #6 |
|
Создано: 05 июня 2012 16:01 · Поправил: vden · Личное сообщение · #7 |
|
Создано: 05 июня 2012 16:08 · Личное сообщение · #8 |
|
Создано: 05 июня 2012 16:20 · Личное сообщение · #9 |
|
Создано: 05 июня 2012 16:22 · Поправил: vden · Личное сообщение · #10 Код который никогда не получит управление. Прикрепил пример. Функция t1. Блок по адресу 4042BA никогда не выполниться. Печально, что это release mode с оптимизациями в XE2. 4262_05.06.2012_EXELAB.rU.tgz - test.exe Хотя в плане декомпиляции это проблем не представляет. В cfg "лишние" блоки всё-равно не попадут. | Сообщение посчитали полезным: neomant, crypto |
|
Создано: 05 июня 2012 17:28 · Личное сообщение · #11 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 05 июня 2012 17:33 · Личное сообщение · #12 |
|
Создано: 05 июня 2012 17:48 · Личное сообщение · #13 |
|
Создано: 05 июня 2012 17:52 · Личное сообщение · #14 |
|
Создано: 05 июня 2012 17:53 · Личное сообщение · #15 Еще один вопрос. Ассемблерный код: Code:
Реверсированный Code:
Начиная с адреса 005011A9 меня застопорило. Никак не могу добиться совпадения кода после компиляции. Даже идей нет, какая может быть конструкция. |
|
Создано: 05 июня 2012 17:57 · Поправил: vden · Личное сообщение · #16 Code:
скорее всего case, но не факт или же что-то вроде if not msg.wparam in [8 , ... ] ... Ещё можно упростить: Code:
|
|
Создано: 06 июня 2012 08:58 · Личное сообщение · #17 vden скорее всего case Точно не он! Несколькими инструкциями выше два условных перехода, которые эту версию отметают напрочь. или же что-то вроде Хотелось бы знать, вроде чего... Нужна осмысленная конструкция, которая после компиляции совпадет с требуемой. Вообще говоря, это конечно не критично, но меня колбасит от незнания, как такое получить. Ещё можно упростить Спасибо, конечно, но это не главная задача. |
|
Создано: 06 июня 2012 10:23 · Личное сообщение · #18 Крайне похожи куски сабклассинга в твоем коде ... Code:
В другом варианте ... Code:
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: crypto |
|
Создано: 06 июня 2012 10:47 · Поправил: crypto · Личное сообщение · #19 |
|
Создано: 06 июня 2012 10:59 · Поправил: neomant · Личное сообщение · #20 |
|
Создано: 06 июня 2012 11:01 · Поправил: mak · Личное сообщение · #21 crypto Вот тут тема Ссылка - ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 06 июня 2012 12:27 · Личное сообщение · #22 |
|
Создано: 06 июня 2012 12:58 · Поправил: vden · Личное сообщение · #23 отлично Code:
--> Code:
|
|
Создано: 06 июня 2012 16:20 · Личное сообщение · #24 |
eXeL@B —› Основной форум —› Реверсерам Дельфи |
Эта тема закрыта. Ответы больше не принимаются. |