переходник на функцию в hasp4

Тема в разделе "WASM.RESEARCH", создана пользователем skifi, 1 сен 2005.

  1. skifi

    skifi New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    10
    сразу извиняюсь, наверное уже замучил всех этим хаспом.

    =) учусь просто.

    суть такова. снял дамп, восстанавливаю функции. одной нету. начинаю в листинге смотреть. вижу что вместо модуля она указывает на сексцию .protect.

    Вопросы: 1. envelop когда шифрует exe забирает одну функцию в свое тело? (где проверка идет)

    2. Функция случайна или строго определенная?

    3. Можно ли перебить указатель на нужную функцию в библиотеки?

    4. Как определить название функции?

    Сразу говорю. Код густой, везде ляпы, хитрые трюки. дизасмом не всегда берется - типа джампа на адрес Х, смотрим, а это середина другого оператора. по опкодам смотрим с этой середины - валидный оператор. и так постоянно. я дошел до 12 вложения... дальше достало.

    Подскажите плиз че нить.

    Перед вызовом функции в стек кладутся:

    :00401184 8BF4 mov esi, esp

    * Possible StringData Ref from Data Obj ->"ImportDo"

    |

    :00401186 6890564000 push 00405690

    :0040118B 8B55BC mov edx, dword ptr [ebp-44]

    :0040118E 52 push edx

    :0040118F FF15D8624000 call dword ptr [004062D8] [оно самое - ссылка на таблицы импорта, где указатель показывает на .protect]

    :00401195 3BF4 cmp esi, esp

    :00401197 E87E040000 call 0040161A [_checkesp msv....dll]

    :0040119C 8945B8 mov dword ptr [ebp-48], eax

    :0040119F 837DB800 cmp dword ptr [ebp-48], 00000000

    :004011A3 741E je 004011C3





    прыгаем по адресу 00415977 в протект, где:

    :00415975 EA40EBFFF5C0EC jmp ECC0:F5FFEB40 [пальцем в небо]

    :0041597C 40 inc eax

    :0041597D 8BEC mov ebp, esp

    :0041597F 6697 xchg ax,di

    :00415981 6697 xchg ax,di

    :00415983 837D0800 cmp dword ptr [ebp+08], 00000000

    :00415987 0F85271B0000 jne 004174B4

    :0041598D 7404 je 00415993

    :0041598F 90 nop

    :00415990 0FA2 cpuid

    :00415992 C286F2 ret F286



    вот такая проблема.
     
  2. nice

    nice New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    42
    Адрес:
    Russia
    skifi

    _http://cracklab.ru/art/art314.php
     
  3. skifi

    skifi New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    10
    ну это я читал еще до того как взял в руки ключ. статья обобщенная, и в некоторых местах непременима в жизни.

    хотя бы взять то, что в софтайсе дамп не снимешь(IceExt - не хочет дампить), а внешним - надо морозить прогу. И тут тоже проблема - мы останавливаемся на бряке VirtualProtect в kernele, вернутся назад в код я так и не смог - у меня устала рука нажимать F8-F10.

    а функцию я вставил наугад - GetProcAdress. одна прога работает, а две других... в принципе работают, но при выходе из них выпадают с ошибкой (movsd из несуществующего участка памяти).
     
  4. skifi

    skifi New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    10
    возможно это все из-за того, что прога до выполнения меньше, чем в оперативки. Просто реальный размер на диске секций меньше в оперативки.

    я бы с большим удовольствием снял дамп в софтайсе =) но почему-то !damp находит несуществующие участки памяти, где по идеи есть инфа. надо шаманить