Сейчас на форуме: Slinger, Rio (+10 невидимых)

 eXeL@B —› Основной форум —› Hardware Inspector
Посл.ответ Сообщение


Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 30 мая 2006 09:01 · Поправил: Maximus
· Личное сообщение · #1

>infern0 :: да, там короче сначала висит stub который в рантайме при чтении оверлея его расшифровывает (захучено чтение из файла), его обходишь и получаешь чистый фоксовский файл.

Может кто обьяснит как получить чистый фоксовский файл сабжа по этой инструкции?

-----
StarForce и Themida ацтой!




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

Создано: 30 мая 2006 10:59
· Личное сообщение · #2

доходишь до момента когда stub окажется расшифрованным, и вклиниваешь свой код, который виртуалит блок памяти и с помощью той самой захученной функции читаешь в него данные из оверлея, а потом этот блок дампишь, добавляешь его к какому нибудь фоксовскому стабу и травишь refox




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 30 мая 2006 11:16
· Личное сообщение · #3

anton2v а может сия процедурка описана на примере какой нють проги?

-----
StarForce и Themida ацтой!




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

Создано: 30 мая 2006 11:45
· Личное сообщение · #4

http://www.exelab.ru/f/action=vthread&topic=167&forum=1&pa ge=-1
а кода уже нет выкинул, если кинешь в меня прогой, напишу заново там мало anton2v@vags.ru




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 30 мая 2006 12:07
· Личное сообщение · #5

anton2v ушло в личку

-----
StarForce и Themida ацтой!




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

Создано: 30 мая 2006 19:08
· Личное сообщение · #6

http://www.exelab.ru/f/action=vthread&topic=2951&forum=1&p age=-1




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 31 мая 2006 09:05
· Личное сообщение · #7

ssx видел уже, мне кажеться к 2.2 не подойдет, судя по тому ключу, который есть в наличии.

-----
StarForce и Themida ацтой!




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

Создано: 31 мая 2006 17:05
· Личное сообщение · #8

Hardware Inspector v1.7

после загрузки hwinsp.exe в ollydbg и пройдя чуть-чуть мы через ексепшн попадаем на 401969
далее идет переписывание $42x4 байт с адреса 4019b2 на 40199f
потом идет разбавленный мусором код который начиная с адреса 40a000 по 40b242 делает побайтовый xor с e7
и затем идет jpm 40a000

Здесь имеет место быть получение адресов части функций импорта и запись на место entry point блока с адреса 40b11e на
40189e длиной 11e

после восстановления регистров мы прыгаем на нашу старую точку входа
из всего этого видно, что нам достаточно поставить hardware breakpoint на EP и отпустить программу

Проанализировав код мы видим, что у нас имеются переходники для функций _lopen, _lclose, _llseek, _lread.
посмотрим теперь на функцию _lread, из нее видно, что если handle файла из которого нужно прочесть совпадает с
хэндлом самой программы, то используется дешифровка содержимого

Пишем процедурку, которая будет читать оверлей из файла программы и писать его в новый файл

OvrStart = 0x8200 // = raw offset + raw size последней секции hwinsp.exe
_lread = 0x40a6ec

Buff dw 0

OldFileName db 'hwinsp.exe', 0
NewFileName db 'hwinsp.ovl', 0

OldFileHandle dw 0
NewFileHandle dw 0

start:

// сохраним наши регистры
pushfd
pushad

// получим хэндл нашей программы
push 0
push offset OldFileName
call _lcreat
mov OldFileHanle, eax
// и поставим указатель на оверлей
push 0
push OvrStart
push eax
call _llseek

// создадим новый файл для оверлея
push 2
push offset NewFileName
call _lopen
mov NewFileHanle

// создадим буфер чтения / записи
push 4
push 1000
push 1000
push 0
call VirtualAlloc
mov Buff, eax

// цикл чтения/записи, пока читается
LoopRW:

push 1000
push Buff
push OldFileHanle
call _lread
mov eof, eax

push 1000
push Buff
push NewFileHanle
call _lwrite

cmp eof, 0
jnz LoopRW

// закроем хэндл нашего оверлея
push NewFileHandle
call _lclose

/ и освободим буфер
push 8000
push 0
Push Buff
call VirtualFree

// восстановим регистры
popad
popaf

// прыгаем на процедуру чтения
jmp _lread

------------------------------------

конечно писать, слишком дохрена поэтому мы сделаем следующее:

FileSize = 0x101785
OldFileHanle = 0x44
_lread = 0x40a6ec

Buff dw 0

push 4
push 1000
push FileSize
push 0
call VirtualAlloc
mov Buff, eax

push FileSize
push Buff
push OldFileHanle
call _lread

save:
jmp save

после этого сбрасываем полученный блок памяти Buff на диск




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 31 мая 2006 17:46
· Личное сообщение · #9

anton2v спасибо тебе огромное... теперь буду разбираться потихоньку

-----
StarForce и Themida ацтой!





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 31 мая 2006 20:36
· Личное сообщение · #10

anton2v пишет:
добавляешь его к какому нибудь фоксовскому стабу и травишь refox


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

-----
StarForce и Themida ацтой!




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

Создано: 01 июня 2006 09:14
· Личное сообщение · #11

да не обязательно, т.к. _lread скорее всего контролирует файловы указатель и даже если мы читаем весь файл одним блоком, то у нас получается полностью расшифрованный файл
ЗЫ: каким рефоксом ты его смотрел ? у меня ни 11, ни его не видят




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 01 июня 2006 10:31
· Личное сообщение · #12

anton2v я 10 смотрел, видно все нормально.
Там просто код немного по другому надо сделать (буфер намного больше чем FileSize), я прям его около первой попавшейся функции _lread в ольке заманьячил, а потом PETools-м снял дамп

push 4
push 1000
push 53288F
push 0
call VirtualAlloc
push 53288F
push eax
push Хендл (у меня 30h)
call измененный _lread

-----
StarForce и Themida ацтой!




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

Создано: 01 июня 2006 10:47
· Личное сообщение · #13

Maximus
Может выложишь дамп? Интересно посмотреть.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 01 июня 2006 10:50 · Поправил: Maximus
· Личное сообщение · #14

mrX ну нах, там 5 метров. Смотри выше этого поста, все ж уже разжевано.

Процедура регистрации полностью схожа с этим:
http://www.exelab.ru/f/action=vthread&topic=2951&forum=1&p age=-1

-----
StarForce и Themida ацтой!




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

Создано: 01 июня 2006 11:13
· Личное сообщение · #15

Maximus
В том-то и дело, что в том топике удален аттач Если у тебя есть тот аттач, залей сюда, пожалуйста.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 01 июня 2006 11:53
· Личное сообщение · #16

mrX пишет: что в том топике удален аттач

Гыг, если бы он был у дален, то скажи, как бы я узнал что проца регистрации схожа с атачем?
У меня все в порядке, атач качается.

-----
StarForce и Themida ацтой!




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

Создано: 01 июня 2006 12:02
· Личное сообщение · #17

Maximus
Окей, все понял - у меня кукисы были в домене cracklab.ru, а не в www.exelab.ru




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 01 июня 2006 12:42
· Личное сообщение · #18

Хм наткнулся на любопытные куски кода.... интересно, в других версиях сие было?


IF DATE() > DATE(2006, 05, 17) .AND. ((TIME() > "05:00" .AND. TIME() < "11:00") .OR. (TIME() > ;
"14:00" .AND. TIME() < "16:00")) .AND. (TYPE('goApp.nDev') <> 'N' .OR. (TYPE('goApp.nDev') = ;
'N' .AND. goapp.ndev > 80))



IF DATE() > DATE(2006, 05, 17) .AND. .T. .AND. RECCOUNT('hardware') > 97 .AND. goapp.lsorted
= MESSAGEBOX("De" + CHR(109) + "o v" + "ersio" + CHR(110) + " has" + SPACE(1) + "exp" + CHR(105) + ;
"red!", 16, thisform.caption)
thisform.release
ENDIF


-----
StarForce и Themida ацтой!





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 01 июня 2006 16:01 · Поправил: Maximus
· Личное сообщение · #19

Усе, заломал нахер эту прожку вчистую. Топик закрываю

Спасибо anton2v и infern0

-----
StarForce и Themida ацтой!



 eXeL@B —› Основной форум —› Hardware Inspector
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати