Сейчас на форуме: zds, _MBK_ (+8 невидимых)

 eXeL@B —› Основной форум —› Можете посоветовать? Hardlock + под dos/win95 = как убрать? :)
. 1 . 2 . 3 . 4 . 5 . 6 . >>
Посл.ответ Сообщение

Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 23 января 2007 09:27
· Личное сообщение · #1

Есть программа, старезная, 97 года выпуска. Защищена Hardlock. В главном екзешнике по обьяснения ИДЫ есть 2 хедера - NE и для ДОСа. Кажется есть встроеная защита, в сам ехе. Для ДОСа наверное. Только наверно, сам код не нашел. И обращения к драйверу HARDLOCK.VXD для Видны. На этом мои познание в этой проге заканчиваются С чего начать ее взлом? Сори за тупую постановку вопроса. Просто поиском интересных мест по коду, и копанию там не получилось ничего...




Ранг: 120.9 (ветеран), 5thx
Активность: 0.080
Статус: Участник
Programmer and reverser

Создано: 23 января 2007 09:43
· Личное сообщение · #2

Для начала узнать что за ключ, а потом искать по форуму. тут много подобных топиков.
посмотри этот, там были ссылки на статьи по теме, вроде
http://www.exelab.ru/f/action=vthread&forum=1&topic=7462

-----
Уважайте других и пишите грамотно.




Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 23 января 2007 09:58
· Личное сообщение · #3

Пасибо. А вот с определением типа ключа проблема - в глаза не видел. Знаю только что в втыкается LPT




Ранг: 120.9 (ветеран), 5thx
Активность: 0.080
Статус: Участник
Programmer and reverser

Создано: 24 января 2007 00:43
· Личное сообщение · #4

ищи на форуме, есть по теме много.

-----
Уважайте других и пишите грамотно.





Ранг: 113.0 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 24 января 2007 01:04
· Личное сообщение · #5

Spry

У программы _под_DOS_ может быть прямое обращение к LPT - in/out - это должно быть видно даже в Айс'е - bpio, а также вызов VxD через int 2F (это вряд ли).

-----
The one derivative you manage is the one I abhore (c) Slipknot




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 24 января 2007 02:24
· Личное сообщение · #6

Spry пишет:
2 хедера - NE и для ДОСа.

Значит это не ДОС, а 16-ти битное Виндовое приложение.



Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 24 января 2007 03:53
· Личное сообщение · #7

tundra37
Мне при открытии этого файла ехе ИДА говорит мол каким макаром воспринимать файл - NE или MS-DOS
Ок, вынь16, просто там есть как обращения к драйверу так и (скорее всего) работа напрямую, потому что под досом прога пашет тоже Сори, если туплю.

Chingachguk
вызов VxD через int 2F там есть
bpio не брякается хотя я под чистый дос сайс не пробовал. Мне по идее нужно только с виндовой части снять защиту

Executioner
искал, читал. Но то ли я туплю, но всеровно не знаю теперь с какого боку подойти к проблеме

Там идет как - если ключ вставлен то 2 пункта меню активируются и другой месадж в about-box. Пытался х-рефы просмотреть. Все что видел - не относится к защите. Я просто не могу понять что искать



Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 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 ---------------------------------------


Что это за конец кода такой? Вроде другой вариант конца функции но рефов на него нету? Прикол защиты или глюк компилятора? Такое очень часто в этом экзешнике встречается




Ранг: 113.0 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 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




Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 24 января 2007 05:34
· Личное сообщение · #10

о, чинга на кряклабе зарегился!
g'day mate!




Ранг: 113.0 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 24 января 2007 06:40
· Личное сообщение · #11

ssx

hi, man!

I hail thou!

ж-)

-----
The one derivative you manage is the one I abhore (c) Slipknot




Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 24 января 2007 06:51
· Личное сообщение · #12

Chingachguk
www.wasm.ru/print.php?article=protect_by_hasp01 твое??? Сижу читаю, аж опешил



Ранг: 22.2 (новичок)
Активность: 0.010
Статус: Участник

Создано: 24 января 2007 07:02 · Поправил: WolfHunter
· Личное сообщение · #13

>Что это за конец кода такой?
скорее всего, просто ф-ция к которой Ида не нашла обращений

>Вроде другой вариант конца функции но рефов на него нету?
исключено (по тому коду что ты привел)




Ранг: 113.0 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 24 января 2007 07:11
· Личное сообщение · #14

Spry

Yeah, man - мой crap ;)

Так ты нашел места вызова?

-----
The one derivative you manage is the one I abhore (c) Slipknot




Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 24 января 2007 07:45
· Личное сообщение · #15

WolfHunter пишет:
скорее всего, просто ф-ция к которой Ида не нашла обращений

Странная какаято функция.. Просто странно. Видел такое (если найду покажу) - функция записывает в ворд1 значение1, просто. без джампов. без колов. в конце похожая на ее концовку (начиная с mov'a) и до конца, но пишет уже значение2 в тот же ворд.

WolfHunter пишет:
исключено (по тому коду что ты привел)

А есть защита код модифит?



Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 24 января 2007 07:48
· Личное сообщение · #16

Chingachguk
Гммм, нет Небыло времени. Пока что только теория ;) Я просто не могу додуматся как защита влияет на код. Тоесть Если защита грит ключа нет, дизейблим меню, или чтото типа если защита есть, распаковываем функцию которая за этим пунктом меню или как то так?

Сори, если примитивно мыслю, мозги туго варят вечером



Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 26 января 2007 07:35
· Личное сообщение · #17

Больше не могу
Chingachguk
Строка "HARDLOCK.VXD" есть, находится в начале сегметна когда, рефов нету, хотя этот кусок кода ИДА5 меньше всего распознала. Функции в этом коде то ли странные то ли по кускам разбиты так, что по всему сегменту прыгаю Так как по идее прога должна работать под ДОС тоже, в ней самой должен быть кусок кода от защиты (читал доки, есть вариант когда весь хардлок в виде либы дается). Вот. Тоесть надо искать код с установкой хэндлеров ошибок как по твоей статье(Invalid Opcode и Page fault). Досовское задание таких хэндлеров нашел. Появился вопрос: если прога и в досе, и в винде работает, но в досе без драйверов, и есть строчка "HARDLOCK.VXD", можно сделать не знаю какой вывод.. весь день сидел, уже голова кругом




Ранг: 113.0 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 26 января 2007 07:57
· Личное сообщение · #18

Spry

Так если есть такая строка - посмотри его используют ли (bpm). А вообще смотри открывается ли устройство (hardlock - как именно я написал выше). Оно должно получить хэндл этого драйвера (смотри OpenFile или CreateFileA) и потом работать с ним (DeviceIoControl). Можно также пойти с другой стороны - поставить bpx на вход в драйвер (также написал выше).

Исключения - это да, но это второй шаг

-----
The one derivative you manage is the one I abhore (c) Slipknot




Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 27 января 2007 01:00
· Личное сообщение · #19

Ну с сайсом у меня небольшой трабл )) Символы у меня не грузятся из ИДА. Может я както коряво делаю MAP->SYM? Можеш и сдесь посоветуеш? Когда я пытаюсь загрузить прогу через DLDR.exe C:/Spry/Intear/brs
(там лежал .EXE и .SYM), прога вылетает, точнее без ошибок, ну как всегда сразу после показывает "Break due to symbol loader" потом тыцаю x; и прога выходит. Если просто DLDR.exe C:/Spry/Intear/brs.EXE все ок, но символов нема, и тогда в коде том разобраться ну както сложно даже чтото найти...



Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 27 января 2007 01:02
· Личное сообщение · #20

в win16 искать CreateFileA? Ну.. Ладно, пошел искать



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 27 января 2007 03:11
· Личное сообщение · #21

Spry пишет:
Ну с сайсом у меня небольшой трабл

16-битные в сайс грузятся через специальный загрузчик.
Есть ли режим ДОС проверить просто - посмотри экзешник вьювером. Там будет фраза "эта прога требует Виндовс" или не будет. Конечно никто не мешает написать NE-прогу , которая и в ДОС-е работает, но что-то я таких не видел. Обычно делают 2 экзешника - это по-моему удобнее.




Ранг: 113.0 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 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




Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 27 января 2007 05:57
· Личное сообщение · #23

tundra37 пишет:
16-битные в сайс грузятся через специальный загрузчик.

Случайно не через DLDR.exe, который в Softiceutil16dldr.exe

Chingachguk
Работу с файлами через
int 21h
DOS - 2+ - OPEN DISK FILE WITH HANDLE
и все fopen, open, FP_OPEN все в итоге сводится к int 21h



Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 27 января 2007 06:08 · Поправил: Spry
· Личное сообщение · #24

Если надо или хочется могу дать екзешник сам... А то у меня не то что познания, а нервы заканчиваются.. уже 2 месяца сижу




Ранг: 113.0 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 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




Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 28 января 2007 01:53 · Поправил: Spry
· Личное сообщение · #26

ХТТП://rapidshare.com/files/13756224/INTEAR.RAR.html

EXE и ПДБ для ИДА5



Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 28 января 2007 02:08
· Личное сообщение · #27

Chingachguk
В сайсе такая постоянно выскакивает
bpint 12 if (ax==4400)
я никак не могу задатать чтобы этот бряк ловился только в нужном приложении



Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 28 января 2007 02:10
· Личное сообщение · #28

а так такого вызова в открытую в ехе нету



Ранг: 41.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 28 января 2007 02:11
· Личное сообщение · #29

Chingachguk пишет:
А впрочем, как я уже грил, можно смотреть входные точки драйвера или bpm на имя "hardlock".


Сори за тупизм, но входные точки драйвера - как?
bpm на имя "hardlock" - нужный мне кусок памяти я искать буду очень долго без символов




Ранг: 113.0 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 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 = как убрать? :)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати