![]() |
eXeL@B —› Основной форум —› Можете посоветовать? Hardlock + под dos/win95 = как убрать? :) |
. 1 . 2 . 3 . 4 . 5 . 6 . >> |
Посл.ответ | Сообщение |
|
Создано: 23 января 2007 09:27 · Личное сообщение · #1 Есть программа, старезная, 97 года выпуска. Защищена Hardlock. В главном екзешнике по обьяснения ИДЫ есть 2 хедера - NE и для ДОСа. Кажется есть встроеная защита, в сам ехе. Для ДОСа наверное. Только наверно, сам код не нашел. И обращения к драйверу HARDLOCK.VXD для Видны. На этом мои познание в этой проге заканчиваются ![]() ![]() ![]() |
|
Создано: 23 января 2007 09:43 · Личное сообщение · #2 Для начала узнать что за ключ, а потом искать по форуму. тут много подобных топиков. посмотри этот, там были ссылки на статьи по теме, вроде http://www.exelab.ru/f/action=vthread&forum=1&topic=7462 ----- Уважайте других и пишите грамотно. ![]() |
|
Создано: 23 января 2007 09:58 · Личное сообщение · #3 |
|
Создано: 24 января 2007 00:43 · Личное сообщение · #4 |
|
Создано: 24 января 2007 01:04 · Личное сообщение · #5 |
|
Создано: 24 января 2007 02:24 · Личное сообщение · #6 |
|
Создано: 24 января 2007 03:53 · Личное сообщение · #7 tundra37 Мне при открытии этого файла ехе ИДА говорит мол каким макаром воспринимать файл - NE или MS-DOS Ок, вынь16, просто там есть как обращения к драйверу так и (скорее всего) работа напрямую, потому что под досом прога пашет тоже ![]() Chingachguk вызов VxD через int 2F там есть bpio не брякается ![]() Executioner искал, читал. Но то ли я туплю, но всеровно не знаю теперь с какого боку подойти к проблеме Там идет как - если ключ вставлен то 2 пункта меню активируются и другой месадж в about-box. Пытался х-рефы просмотреть. Все что видел - не относится к защите. Я просто не могу понять что искать ![]() ![]() |
|
Создано: 24 января 2007 03:58 · Личное сообщение · #8 впрос. Вот дизасм: cseg132:03BE ; --------------- S U B R O U T I N E --------------------------------------- cseg132:03BE cseg132:03BE ; Attributes: bp-based frame cseg132:03BE cseg132:03BE sub_10E94E proc far cseg132:03BE cseg132:03BE arg_0 = dword ptr 6 cseg132:03BE cseg132:03BE inc bp cseg132:03BF push bp cseg132:03C0 mov bp, sp cseg132:03C2 cmp [bp+arg_0], 0 cseg132:03C7 jz short loc_10E962 cseg132:03C9 les bx, [bp+arg_0] cseg132:03CC mov ax, word_13CAB8 cseg132:03CF mov es:[bx], ax cseg132:03D2 cseg132:03D2 loc_10E962: ; CODE XREF: sub_10E94E+9j cseg132:03D2 mov ax, word_13CAB4 cseg132:03D5 jmp short $+2 cseg132:03D7 pop bp cseg132:03D8 dec bp cseg132:03D9 retf cseg132:03D9 sub_10E94E endp cseg132:03D9 cseg132:03DA ; ---------------------------------------------------------------------- ----- cseg132:03DA mov dx, word ptr dword_13CAA4+2 cseg132:03DE mov ax, word ptr dword_13CAA4 cseg132:03E1 jmp short $+2 cseg132:03E3 retf cseg132:03E4 cseg132:03E4 ; --------------- S U B R O U T I N E --------------------------------------- Что это за конец кода такой? Вроде другой вариант конца функции но рефов на него нету? Прикол защиты или глюк компилятора? Такое очень часто в этом экзешнике встречается ![]() |
|
Создано: 24 января 2007 05:28 · Поправил: Chingachguk · Личное сообщение · #9 Spry Посмотри пока Create/OpenFile(.hardlock или .hasp95",...etc) и DeviceIoControl к открытым хэндлам. Если болтаюцца среди VxD вышеупомянутые ребята, попробуй поставить им на вход bpx (точка входа в айсе: vxd <имя vxd'шника>). ps damn, форум киляет "косые черточки" (0x5С) перед именем драйвера ![]() ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 24 января 2007 05:34 · Личное сообщение · #10 |
|
Создано: 24 января 2007 06:40 · Личное сообщение · #11 |
|
Создано: 24 января 2007 06:51 · Личное сообщение · #12 |
|
Создано: 24 января 2007 07:02 · Поправил: WolfHunter · Личное сообщение · #13 |
|
Создано: 24 января 2007 07:11 · Личное сообщение · #14 |
|
Создано: 24 января 2007 07:45 · Личное сообщение · #15 WolfHunter пишет: скорее всего, просто ф-ция к которой Ида не нашла обращений Странная какаято функция.. Просто странно. Видел такое (если найду покажу) - функция записывает в ворд1 значение1, просто. без джампов. без колов. в конце похожая на ее концовку (начиная с mov'a) и до конца, но пишет уже значение2 в тот же ворд. WolfHunter пишет: исключено (по тому коду что ты привел) А есть защита код модифит? ![]() |
|
Создано: 24 января 2007 07:48 · Личное сообщение · #16 Chingachguk Гммм, нет ![]() Сори, если примитивно мыслю, мозги туго варят вечером ![]() |
|
Создано: 26 января 2007 07:35 · Личное сообщение · #17 Больше не могу ![]() Chingachguk Строка "HARDLOCK.VXD" есть, находится в начале сегметна когда, рефов нету, хотя этот кусок кода ИДА5 меньше всего распознала. Функции в этом коде то ли странные то ли по кускам разбиты так, что по всему сегменту прыгаю ![]() ![]() ![]() ![]() |
|
Создано: 26 января 2007 07:57 · Личное сообщение · #18 Spry Так если есть такая строка - посмотри его используют ли (bpm). А вообще смотри открывается ли устройство (hardlock - как именно я написал выше). Оно должно получить хэндл этого драйвера (смотри OpenFile или CreateFileA) и потом работать с ним (DeviceIoControl). Можно также пойти с другой стороны - поставить bpx на вход в драйвер (также написал выше). Исключения - это да, но это второй шаг ![]() ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 27 января 2007 01:00 · Личное сообщение · #19 Ну с сайсом у меня небольшой трабл ![]() (там лежал .EXE и .SYM), прога вылетает, точнее без ошибок, ну как всегда сразу после показывает "Break due to symbol loader" потом тыцаю x; и прога выходит. Если просто DLDR.exe C:/Spry/Intear/brs.EXE все ок, но символов нема, и тогда в коде том разобраться ну както сложно даже чтото найти... ![]() |
|
Создано: 27 января 2007 01:02 · Личное сообщение · #20 |
|
Создано: 27 января 2007 03:11 · Личное сообщение · #21 Spry пишет: Ну с сайсом у меня небольшой трабл 16-битные в сайс грузятся через специальный загрузчик. Есть ли режим ДОС проверить просто - посмотри экзешник вьювером. Там будет фраза "эта прога требует Виндовс" или не будет. Конечно никто не мешает написать NE-прогу , которая и в ДОС-е работает, но что-то я таких не видел. Обычно делают 2 экзешника - это по-моему удобнее. ![]() |
|
Создано: 27 января 2007 03:25 · Личное сообщение · #22 Почему Create?! Я написал Open или Create, может быть даже через специальный Dos3Call ... или как там в этих NE? Посмотри, как она вообще работает с файлами (любыми). Никогда ничего не грузил в sice (кроме стандартных kernel32, etc). Накрайняк можно пойти со стороны драйвера (выше). ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 27 января 2007 05:57 · Личное сообщение · #23 |
|
Создано: 27 января 2007 06:08 · Поправил: Spry · Личное сообщение · #24 |
|
Создано: 27 января 2007 08:42 · Личное сообщение · #25 upload if you wanna, может быть посмотрю... никогда не видал software для dos? ne? для этого ключа. Если dos3call == int 21h, то тогда скорее всего работа с устройствами сделана через ioctl: --------D-214400----------------------------- INT 21 - DOS 2+ - IOCTL - GET DEVICE INFORMATION AX = 4400h BX = handle ... А впрочем, как я уже грил, можно смотреть входные точки драйвера или bpm на имя "hardlock". ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
|
Создано: 28 января 2007 01:53 · Поправил: Spry · Личное сообщение · #26 |
|
Создано: 28 января 2007 02:08 · Личное сообщение · #27 |
|
Создано: 28 января 2007 02:10 · Личное сообщение · #28 |
|
Создано: 28 января 2007 02:11 · Личное сообщение · #29 |
|
Создано: 28 января 2007 06:04 · Личное сообщение · #30 Когда приложение вызывает (а оно это же как-то делает, верно?) hardlock, то ему в конце-концов попадет управление. У VxD есть так называемая точка входа куда VMM (главный менеджер) будет передавать вызовы - например после DeviceIoControl. Входная точка видна по команде vxd <имя VxD> в сайсе или же открой свой хардлок в дизасме и посмотри что там написано, а потом уже - запомнив байты начала точки входа найди их в айсе командой s (search). Там должна быть обработка функций типа: ; VxD entry point 010B: 83F807 cmp eax,007 ; CREATE_VM 010E: 0F84ECFEFFFF je .000000000 ----- (1) 0114: 83F809 cmp eax,009 ; VM_INIT 0117: 0F84E5FEFFFF je .000000002 ----- (2) 011D: 83F81E cmp eax,01E ; THREAD_INIT ; Установка #6 и #14 0120: 0F84E7FEFFFF je .00000000D ----- (3) 0126: 83F802 cmp eax,002 ; INIT_COMPLETE 0129: 0F84EBFEFFFF je .00000001A ----- (4) 012F: 83F823 cmp eax,023 ; W32_DEVICEIOCONTROL 0132: 0F8466FFFFFF je .00000009E ----- (5) 0138: 83F81B cmp eax,01B ; SYS_DYNAMIC_DEVICE_INIT 013B: 74AF je .0000000EC ----- (6) 013D: 83F81C cmp eax,01C ; SYS_DYNAMIC_DEVICE_EXIT 0140: 74B9 je .0000000FB ----- (7) 0142: F8 clc 0143: C3 retn А по поводу "поставить bpm на имя" - так ты его же нашел? Если нашел, так и ставь bpm 30:<адрес> (селектор лучше 30h - это я про win98). Если не нашел, то сначала найди его командой s (селектор опять лучше 0x30), затем уже bpm. Если скачаю и посмотрю - отпишу ![]() ----- The one derivative you manage is the one I abhore (c) Slipknot ![]() |
. 1 . 2 . 3 . 4 . 5 . 6 . >> |
![]() |
eXeL@B —› Основной форум —› Можете посоветовать? Hardlock + под dos/win95 = как убрать? :) |