![]() |
eXeL@B —› Основной форум —› Hardware Inspector |
Посл.ответ | Сообщение |
|
Создано: 30 мая 2006 09:01 · Поправил: Maximus · Личное сообщение · #1 |
|
Создано: 30 мая 2006 10:59 · Личное сообщение · #2 |
|
Создано: 30 мая 2006 11:16 · Личное сообщение · #3 |
|
Создано: 30 мая 2006 11:45 · Личное сообщение · #4 http://www.exelab.ru/f/action=vthread&topic=167&forum=1&pa ge=-1 а кода уже нет выкинул, если кинешь в меня прогой, напишу заново там мало anton2v@vags.ru ![]() |
|
Создано: 30 мая 2006 12:07 · Личное сообщение · #5 |
|
Создано: 30 мая 2006 19:08 · Личное сообщение · #6 |
|
Создано: 31 мая 2006 09:05 · Личное сообщение · #7 |
|
Создано: 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 на диск ![]() |
|
Создано: 31 мая 2006 17:46 · Личное сообщение · #9 |
|
Создано: 31 мая 2006 20:36 · Личное сообщение · #10 |
|
Создано: 01 июня 2006 09:14 · Личное сообщение · #11 |
|
Создано: 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 ацтой! ![]() |
|
Создано: 01 июня 2006 10:47 · Личное сообщение · #13 |
|
Создано: 01 июня 2006 10:50 · Поправил: Maximus · Личное сообщение · #14 mrX ну нах, там 5 метров. Смотри выше этого поста, все ж уже разжевано. Процедура регистрации полностью схожа с этим: http://www.exelab.ru/f/action=vthread&topic=2951&forum=1&p age=-1 ----- StarForce и Themida ацтой! ![]() |
|
Создано: 01 июня 2006 11:13 · Личное сообщение · #15 |
|
Создано: 01 июня 2006 11:53 · Личное сообщение · #16 |
|
Создано: 01 июня 2006 12:02 · Личное сообщение · #17 |
|
Создано: 01 июня 2006 12:42 · Личное сообщение · #18 Хм наткнулся на любопытные куски кода.... интересно, в других версиях сие было?
----- StarForce и Themida ацтой! ![]() |
|
Создано: 01 июня 2006 16:01 · Поправил: Maximus · Личное сообщение · #19 |
![]() |
eXeL@B —› Основной форум —› Hardware Inspector |
Эта тема закрыта. Ответы больше не принимаются. |