Русский / Russian English / Английский

Сейчас на форуме: DirtySmoke, rmn, gotohell (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Протекторы —› SafeDisc 4.1
<< . 1 . 2 . 3 . 4 . >>
Посл.ответ Сообщение


Ранг: 303.7 (мудрец)
Статус: Участник
tPORt Manager

Создано: 15 сентября 2005 10:07 New!
Цитата · Личное сообщение · #1

Кто что может сказать? Я даже дебаггером проехаться не смог (NtQueryInformationProcess обхожу руками). Алкохол не катит. Как его снимать первый вопрос (хотябы до ОЕР дойти, бряк на переход jmp OEP не катит, т.к. анти-дебаг), ну а если не кто не знает, то как его эмулить?.

Ранг: -13.0 (нарушитель)
Статус: Участник

Создано: 14 июля 2006 18:27 New!
Цитата · Личное сообщение · #2

Написал бы кто как Симов II сломать статейку Я уже заколебался с ними,комп всё время глючит,
BSOD вылетает... короче эмулятор ни х$% не работает,а сломать не могу!!!

Ранг: -13.0 (нарушитель)
Статус: Участник

Создано: 14 июля 2006 18:30 New!
Цитата · Личное сообщение · #3

Висит на них вот такая байда:
SafeDisc 4.00.001 -> Macrovision [Overlay]
Иногда играешь полчаса,а потом комп пишет: (дословно) "приложение повалилось.обратитесь к разработчику"
Протектор имеет защиту от отладки,гружу в OllyDbg а он ругается что типа отладчик найден...
Если кто поможет,я буду очень вам благодарен.


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 14 июля 2006 19:32 · Поправил: DillerInc New!
Цитата · Личное сообщение · #4

Codegen
Если там нет этих API,то ломается там всё также как и в третьей версии.
Для третьей версии статья имеется.


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 14 июля 2006 22:10 New!
Цитата · Личное сообщение · #5

[off]Мусоришь в тематических топиках -- тебе в "Запросы на взлом".[/off]

Ранг: 495.3 (мудрец)
Статус: Участник

Создано: 15 июля 2006 04:00 · Поправил: Bitfry New!
Цитата · Личное сообщение · #6

Codegen
Предупреждение за флуд в основном разделе форума!
(Топик чуть подчистил)

Ранг: 5.5 (гость)
Статус: Участник

Создано: 25 июля 2006 13:12 New!
Цитата · Личное сообщение · #7

Здраствуйте!
На днях раскопал в теле NFSMW v1.3 очень интересную вещь.
Подробности в аттаче.

{ Атач доступен только для участников форума } - nsfmw__v1_3.txt


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 25 июля 2006 17:17 · Поправил: DillerInc New!
Цитата · Личное сообщение · #8

Dimosz
dd 66826AACh ; jump to SafeDisc proc located in ".data" section of SecSrv.dll
; Very interesting!

...ну,и чем же она по-твоему так интересна??
К тому же не SecSrv.dll, а ~df394b.tmp.
И,наконец,у меня как-то не вяжется "jump" и ".data"...

Ранг: 5.5 (гость)
Статус: Участник

Создано: 26 июля 2006 19:36 New!
Цитата · Личное сообщение · #9

DillerInc
API SafeDisc-a прыгают именно туда. Адрес 66826AACh принадлежит секции ".data". Там находится еще одна скрытая от наших глаз функция. Я думаю что через нее SafeDisc осуществляет передачу тех самых констант необходимых игре для нормальной работы. Просто задаю себе реторический вопрос: "Нафига надо было ее прятать в ".data" секции?"


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 26 июля 2006 20:38 New!
Цитата · Личное сообщение · #10

Dimosz
Хех,мля...Америку открыл .
То,что ты нашёл есть не SDAPI,а всего лишь функция обработки так называемых "redirected internal calls" (терминология mr_magico) -- читай его статью про третий SD.

Распакуй приложение по старому способу(импорт,наномиты),попробуй его запустить -- когда оно упадёт по ошибке доступа,тогда ты узнаешь адрес требуемой процедуры .

А вообще даю подсказку -- адрес процедуры равен 6672F2F7 -- там и смотри.


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 27 сентября 2006 14:06 · Поправил: Z0oMiK New!
Цитата · Личное сообщение · #11

DillerInc Чет я не как не пойму как эти наномиты фиксить
IAT , Stolen Bytes это все фикситься без проблем а наномиты чет не пойму Ковыряю роритетный Need For Speed Underground - лицензия от SoftClub .... значит дампнутый EXE с IAT и тд вываливается по
этому адресу 001e8826 там мусор какой то такого вида

006E8826 FF00 INC DWORD PTR DS:[EAX]
006E8828 F1 INT1
006E8829 00F1 ADD CL,DH
006E882B 00F1 ADD CL,DH
006E882D 00FF ADD BH,BH
006E882F 00F2 ADD DL,DH
006E8831 00F2 ADD DL,DH
006E8833 00F2 ADD DL,DH
006E8835 00FF ADD BH,BH
006E8837 00F3 ADD BL,DH
006E8839 00F3 ADD BL,DH
006E883B 00F3 ADD BL,DH
006E883D 00FF ADD BH,BH
006E883F 00F4 ADD AH,DH
006E8841 00F4 ADD AH,DH
006E8843 00F4 ADD AH,DH
006E8845 00FF ADD BH,BH
006E8847 00F6 ADD DH,DH
006E8849 00F6 ADD DH,DH
006E884B 00F6 ADD DH,DH
006E884D 00FF ADD BH,BH
006E884F 00F7 ADD BH,DH
006E8851 00F7 ADD BH,DH
006E8853 00F7 ADD BH,DH
006E8855 00FF ADD BH,BH
006E8857 00F8 ADD AL,BH
006E8859 00F8 ADD AL,BH
006E885B 00F8 ADD AL,BH
006E885D 00FF ADD BH,BH
006E885F 00F9 ADD CL,BH
006E8861 00F9 ADD CL,BH
006E8863 00F9 ADD CL,BH


сообственно потом решил запустить под олькой ... с первого F9 олька тормознула тут

005E8826 CC INT3
005E8827 CC INT3
005E8828 CC INT3
005E8829 CC INT3
005E882A 56 PUSH ESI
005E882B 8D45 14 LEA EAX,DWORD PTR SS:[EBP+14]
005E882E 50 PUSH EAX
005E882F FF75 10 PUSH DWORD PTR SS:[EBP+10]
005E8832 8D45 10 LEA EAX,DWORD PTR SS:[EBP+10]
005E8835 50 PUSH EAX
005E8836 6A 00 PUSH 0
005E8838 FF75 0C PUSH DWORD PTR SS:[EBP+C]
005E883B FF75 FC PUSH DWORD PTR SS:[EBP-4]
005E883E FF15 08706900 CALL DWORD PTR DS:[<&ADVAPI32.RegQueryVa>; ADVAPI32.RegQueryValueExA
005E8844 FF75 FC PUSH DWORD PTR SS:[EBP-4]
005E8847 8BF0 MOV ESI,EAX
005E8849 FF15 00706900 CALL DWORD PTR DS:[<&ADVAPI32.RegCloseKe>; ADVAPI32.RegCloseKey
005E884F 85F6 TEST ESI,ESI
005E8851 5E POP ESI
005E8852 CC INT3
005E8853 CC INT3
005E8854 8B45 10 MOV EAX,DWORD PTR SS:[EBP+10]
005E8857 3B45 08 CMP EAX,DWORD PTR SS:[EBP+8]
005E885A 75 05 JNZ SHORT SAFEDISC.005E8861
005E885C 33C0 XOR EAX,EAX
005E885E 40 INC EAX
005E885F EB 02 JMP SHORT SAFEDISC.005E8863
005E8861 33C0 XOR EAX,EAX
005E8863 C9 LEAVE
005E8864 C2 1000 RETN 10


я так понял эти INT3 и надо фиксить ? или я чет не догоняю ? Хелп короче


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 27 сентября 2006 15:08 New!
Цитата · Личное сообщение · #12

Z0oMiK
Ну,во-первых,по какой схеме ты хочешь восстанавливать эти наномиты??Потому как я использую ту,что приводит mr_magico в своей статье про третий SD.
Минимальная длина наномита равняется двум байтам,т.е. две команды INT3(если не считать некоторых отдельных вариаций).
Как правило перед настоящим наномитом идёт вызов API-функции.Например,твой вариант:
005E8849 FF15 00706900 CALL DWORD PTR DS:[<&ADVAPI32.RegCloseKe>; ADVAPI32.RegCloseKey
005E884F 85F6 TEST ESI,ESI
005E8851 5E POP ESI
005E8852 CC INT3
005E8853 CC INT3
...две команды INT3 -- это скорее всего наномиты.
Можно искать максимальную длину от настоящих наномитов до ближайшего вызова API,как предлагает mr_magico,но я последнее время этого не делаю,ибо довольно муторное занятие.Просто ставлю примерное значение(например, 35h) и ставлю точку останова на KiUserExceptionDispatcher,чтобы проанализировать,где вывалились.
Нашёл наномиты,исполняешь их.Они восстанавливаются либо со второго,либо с первого раза.Вообще,не знаю,как всё это в Olly выглядеть будет...
Кстати,не забудь заNOPить фальш-наномиты,если они конечно вообще присутствуют в твоём случае.

Если честно,то у меня данная стадия распаковки называется "интерактивная игра с отладчиком",потому что конкретных случаев бывает достаточно много,а какого-то универсального метода я пока не знаю.Но тем не менее практика показывает,что наномиты -- это вовсе не самый сложный защитный механизм данного протектора и снимается обычно малой кровью


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 27 сентября 2006 16:22 · Поправил: Z0oMiK New!
Цитата · Личное сообщение · #13

DillerInc Ну вот такие как фиксить ? этоже кикоз целый .. там такого гомна ужость просто

006473B0 55 PUSH EBP
006473B1 8BEC MOV EBP,ESP
006473B3 A1 88257100 MOV EAX,DWORD PTR DS:[712588]
006473B8 50 PUSH EAX
006473B9 6A 00 PUSH 0
006473BB 6A 00 PUSH 0
006473BD 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
006473C0 51 PUSH ECX
006473C1 68 78966A00 PUSH Speed_Du.006A9678 ; ASCII "RCMP::AV_SUBTITLE"
006473C6 B9 7C257100 MOV ECX,Speed_Du.0071257C
006473CB E8 F0C9F5FF CALL Speed_Du.005A3DC0
006473D0 5D POP EBP
006473D1 C3 RETN
006473D2 CC INT3
006473D3 CC INT3
006473D4 CC INT3
006473D5 CC INT3
006473D6 CC INT3
006473D7 CC INT3
006473D8 CC INT3
006473D9 CC INT3
006473DA CC INT3
006473DB CC INT3
006473DC CC INT3
006473DD CC INT3
006473DE CC INT3
006473DF CC INT3
006473E0 55 PUSH EBP
006473E1 8BEC MOV EBP,ESP
006473E3 51 PUSH ECX
006473E4 894D FC MOV DWORD PTR SS:[EBP-4],ECX
006473E7 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
006473EA 8B40 14 MOV EAX,DWORD PTR DS:[EAX+14]
006473ED 8BE5 MOV ESP,EBP
006473EF 5D POP EBP
006473F0 C3 RETN
006473F1 CC INT3
006473F2 CC INT3
006473F3 CC INT3
006473F4 CC INT3
006473F5 CC INT3
006473F6 CC INT3
006473F7 CC INT3
006473F8 CC INT3
006473F9 CC INT3
006473FA CC INT3
006473FB CC INT3
006473FC CC INT3
006473FD CC INT3
006473FE CC INT3
006473FF CC INT3
00647400 55 PUSH EBP
00647401 8BEC MOV EBP,ESP
00647403 51 PUSH ECX
00647404 894D FC MOV DWORD PTR SS:[EBP-4],ECX
00647407 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0064740A 8B40 04 MOV EAX,DWORD PTR DS:[EAX+4]
0064740D 8BE5 MOV ESP,EBP
0064740F 5D POP EBP
00647410 C3 RETN
00647411 CC INT3
00647412 CC INT3
00647413 CC INT3
00647414 CC INT3
00647415 CC INT3
00647416 CC INT3
00647417 CC INT3
00647418 CC INT3
00647419 CC INT3
0064741A CC INT3
0064741B CC INT3
0064741C CC INT3
0064741D CC INT3
0064741E CC INT3
0064741F CC INT3


А можно как нить все сразу востановить ? а то их там куча такая год будешь в ручную фиксить вообщем я добился того что игра запускается можно в менюшке полазить начать карьеру , тока вот в этой карьере и будет каждый раз выкидывать на разные адреса с этими INT3 напиши как лучше все сделать а то я уже вторые сутки сижу блин спать даж не ложился
Если будет время поможешь разобраться до конца ? вот залил архив там мой дампнутый и оригинальный EXEшник... вес 4кг
Заранее большое шпасибо

rapidshare.de/files/34692489/NFSU.RAR.html

Ранг: 495.3 (мудрец)
Статус: Участник

Создано: 28 сентября 2006 03:53 New!
Цитата · Личное сообщение · #14

Z0oMiK, это не нанамиты .
Просто включено выравнивание функций для оптимизации переходов.
К примеру, на Асме можешь посмотреть результат директивы align 32, она выровняет следующую за ней команду до кратности 32-байтам, а пространство между функциями заполняется CCh.


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 28 сентября 2006 05:08 New!
Цитата · Личное сообщение · #15

Z0oMiK
Bitfry прав -- это не наномиты.Где ты видишь поблизости вызов какой-нибудь API-функции??
И что значит вручную??Для этого всего пишется соответствующий байт-код,который автоматизирует весь процесс.Располагается этот код у меня как правило в начале PE-файла,после таблицы секций.
Согласно методу,предложенному немецким товарищем в его статье,сначала необходимо убить секцию кода -- переписать всё кроме команд INT3 и вызовов API командами RET.Вот как раз на этом этапе я также избавляюсь и таких связок как:

C3
CC
CC
...

C2 XX 00
CC
CC
...

E9 XX XX XX XX
CC
CC
...

...чтобы они потом по возможности не мешали.

Проблема,являющаяся тут одной из ложек дёгтя, -- это связка из трёх команд INT3,которые являются командой ADD ESP, XX. При выполнении последней гадится стек,и мы уже не можем нормально вернутся в наш исправительный код по команде RET.
mr_magico предлагал в статье вариант обхода такой проблемы,но этот вариант не всегда прокатывает.К тому же писанины в разы больше получается.


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 28 сентября 2006 10:06 New!
Цитата · Личное сообщение · #16

Bitfry и DillerInc ну вот к примеру этот точно наномиты

00474F10 50 PUSH EAX
00474F11 8BF9 MOV EDI,ECX
00474F13 FF15 78716900 CALL DWORD PTR DS:[<&KERNEL32.QueryPerfo>; kernel32.QueryPerformanceCounter
00474F19 8B4F 34 MOV ECX,DWORD PTR DS:[EDI+34]
00474F1C 8B41 38 MOV EAX,DWORD PTR DS:[ECX+38]
00474F1F CC INT3
00474F20 CC INT3
00474F21 2BC3 SUB EAX,EBX
00474F23 CC INT3
00474F24 CC INT3
00474F25 48 DEC EAX


Вообщем расскажите как лучше всего фиксить


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 28 сентября 2006 11:14 New!
Цитата · Личное сообщение · #17

Вообщем все разобрал до конца Bitfry DillerInc риспект вам


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 6 ноября 2006 21:10 · Поправил: Z0oMiK New!
Цитата · Личное сообщение · #18

Эм значит начал ковырять SafeDisc на Most Wanted ( SoftClub ) версия ... Делал все так же как и с Underground но тут такая проблемуса есть Не пойму че за фигня Bitfry, DillerInc есть идеи?

img292.imageshack.us/img292/7568/accessul2.png


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 6 ноября 2006 23:49 New!
Цитата · Личное сообщение · #19

Z0oMiK
Дык,ты SDAPI восстановил??
Судя по значениям регистров на скриншоте,это явно переход из преддверия в протектор.
ESI содержит адрес SDRoutineAddr -- 66732354
EDI это скорее всего MagicAreaPtr -- 01292498
и т.д.


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 7 ноября 2006 02:58 · Поправил: Z0oMiK New!
Цитата · Личное сообщение · #20

DillerInc И как это все дело востанавливать ? на NFS Underground'e от SoftClub подобного небыло если можно в кратце а лучше скриптик какой нить для востановления если таков имеется И вообще от куда начинать это все фиксит а самое главное как


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 7 ноября 2006 03:41 New!
Цитата · Личное сообщение · #21

Z0oMiK
Прикалываешься...??
Я для чего свою работу по этому механизму опубликовывал??


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 7 ноября 2006 04:14 New!
Цитата · Личное сообщение · #22

DillerInc Да я не прикалываюсь я ща на работе по этому читать заного тутор нету времени да и домой не скоро приеду поэтому и спрашиваю чтобы объяснил в кратце как и чего...


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 7 ноября 2006 09:16 New!
Цитата · Личное сообщение · #23

Z0oMiK пишет:
объяснил в кратце как и чего...

...э-э нет,тут так наврятли получится.Там же материала на двадцать с лишним страниц.
Покупай побольше пива и,как говорится,кури всё это дело


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 7 ноября 2006 15:31 New!
Цитата · Личное сообщение · #24

DillerInc Я не пью лучше скажи что мне делать грузанул EXE в Ольку а дальше чего мне делать ? Направь меня ..

Ранг: 2.3 (гость)
Статус: Участник

Создано: 8 ноября 2006 01:43 New!
Цитата · Личное сообщение · #25

Zoomik, у меня игра запускается и вылетает с кодом 0 под Олькой по адресу 00A7FF8C (call eax), в eax адрес, принадлежащий .tmp файлу апи сейфдиска (~df394b.0x12121212), и там в разных местах происходит выход (походу каждый раз рандомно туда распаковывается содержимое). Я скрываю Ольку от антиотладчика сейфдиска с помощью Anti-Anti-Debug плагина Olly Advanced; HideOD, Hide Debugger итд не спасают. В чём грабли ? Недостаточно хорошо спрятана Оля ?

Ранг: 2.3 (гость)
Статус: Участник

Создано: 8 ноября 2006 03:02 New!
Цитата · Личное сообщение · #26

DillerInc пишет:
и,как говорится,кури всё это дело


Имеется в виду тот перевод с немецкого (Распаковка SafeDisc 2.30.33.doc) ? Он всё ещё актуален ?


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 8 ноября 2006 03:18 New!
Цитата · Личное сообщение · #27

По моему имеется ввиду SDAPI imho...


Ранг: 283.6 (наставник)
Статус: Участник
Author of GeTaOEP

Создано: 8 ноября 2006 08:27 New!
Цитата · Личное сообщение · #28

Z0oMiK пишет:
Направь меня ..

...тебе надо восстановить структуры протектора в секции данных защищённого приложения.Для этого необходимо писать свой код,который будет автоматом находить искомые величины и восстанавливать определённые места.Будет ли это какой-нибудь паршивенький скриптик или целое независимое приложение -- это уже дело твоё.Но в любом случае здесь необходим более основательный подход.
Кстати,я ведь к основному материалу добавлял примеры некоторых важных процедур.

erroric пишет:
Он всё ещё актуален ?

...частично.

PE_Kill пишет:
По моему имеется ввиду SDAPI imho...

...именно.

Кстати,вопрос: так можно ли всё же использовать OllyDebugger для распаковки SD??


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 8 ноября 2006 09:28 New!
Цитата · Личное сообщение · #29

DillerInc может поможешь тогда ? я залью EXE ?

Ранг: 2.3 (гость)
Статус: Участник

Создано: 8 ноября 2006 23:52 New!
Цитата · Личное сообщение · #30

DillerInc пишет:
Кстати,вопрос: так можно ли всё же использовать OllyDebugger для распаковки SD??

А почему бы и нет, если грамотно скрыть отладчик ? Вон на скриншоте у Zoomik'a тоже Олька.
2 Zoomik - подскажи плз, чем ты скрываешь Олю от анти-отладчика SD ? Я пользуюсь плагином Olly Advanced, но как я писал двумя постами выше, игра падает при запуске (но не выдаёт сообщений что обнаружен дебаггер) , я подозреваю что это всё-таки из-за присутствия отладчика ...


Ранг: 299.6 (наставник)
Статус: Участник
Armadillo Killer

Создано: 9 ноября 2006 03:33 New!
Цитата · Личное сообщение · #31

erroric Ничем не скрываю.. у меня пропатченая OllyShadow
<< . 1 . 2 . 3 . 4 . >>
 eXeL@B —› Протекторы —› SafeDisc 4.1

Видеокурс ВЗЛОМ