Сейчас на форуме: SVLab, Crawler, OLMAR, denvenya, VaD (+4 невидимых пользователей) |
 |
|
| Посл.ответ |
Сообщение |
|
Создано: 26 февраля 2007 13:34:30 Личное сообщение #1
Ну-с господа с чего начать советуете? Я что-то посмотрел все так уныло смотрят на старик, но уж очень хочется игрушку поламать (название Darkstar One) , а рабочих кряков в инете нету (версия Акеллы).
Отсюда напросился вопрос, какие маны/туторы посоветуете, чтобы не все подряд читать, может кто уже сталкивался с этой проблемой и имеет положительный опыт?
|
|
|
Создано: 5 мая 2008 11:13:47 · Поправил: UzVeR Личное сообщение #2
Может кто глянуть есть ли у меня изменения в лучшую сторону я немного импорт "профиксил"(если это мона так назвать)
До
http://ifolder.ru/6319405
После
http://ifolder.ru/6427215
Кстати при поиске ОЕР выскакиваю немного ниже (на 2 функции GetVersion и GetModuleHandleA) чем ОЕР это не важно?
|
|
Создано: 5 мая 2008 13:26:47 Личное сообщение #3
UzVeR пишет:
и GetModuleHandleA
...очень важно.
Ставь выше "железяку" (hr addr_oep), и перезагружай/стартуй/дампи_нах..
----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 5 мая 2008 17:47:55 · Поправил: UzVeR Личное сообщение #4
Bronco пишет:
Ставь выше "железяку" (hr addr_oep), и перезагружай/стартуй/дампи_нах..
Тут я так и делал
UzVeR пишет:
После
http://ifolder.ru/6427215[/i]
На счет ОЕР спрашивал просто интерестно т.к. по железяке я останавливался почти в начале выполнения кода dll
|
|
Создано: 7 мая 2008 03:35:38 Личное сообщение #5
undb
Спасибо за инфо.Посмотрел/помониторил в лог table_reg_vm, вначале был просто очарован, а потом за голову взялся...Ужс...  Не знаю как там насчёт эмуля простых команд, но тУта ими явно не пахнет.
Ща на примере:
command № 00000003
before_vm_edx:|= 0012FD01
after_vm_edx:|= 04034D78
Тут как-бы понятно
mov edx,[edx+23]//ну явно не простая
А вот тут мну плохо стало:
command № 00000004
before_vm_ecx:|= 00000013
after_vm_ecx:|= 040428E8
Во внутренней таблице, адрес стека есть только в vm_esp=0012FB88, а данные взяты из 0012FD20|=040428E8.Такая последовательность мну кажетЦо, немного алогична...
----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 7 мая 2008 05:34:42 · Поправил: undb Личное сообщение #6
У меня пока завал , отвечу на выходных.
А так в общем и в краце , ты вообще уверен что это эмуль команда , а не результат действия какой нить функции из вне или нопов ?
mov edx,[edx+23]//ну явно не простая
может mov edx,[reg1+reg2-reg3] ??
Как ты правельно заметил она не простая (mov edx,[edx+23]) и должна выполнятся на нопах. Я мониторил то что он взял и что вернул, а не изменения в таблице.
|
|
Создано: 7 мая 2008 12:08:16 Личное сообщение #7
Господа рад приветствовать вас!
есть одно небольшое предложение касаемо сабжа
может быть попытатся сосавить некое подобие блок-схемы
общей картины действия защиты на исполняемом файле?..
в первую очередь мне не совсем понятно следующее
операции по дампу необходимо производить с запускаемым
на исполнение файлом, следовательно имеем точную топологию
и эмуляцию ее в ДТ затем запуск из под отладчика?..
вроде бы очевидно но однако для меня
сомневающегося новичка вопрос насущен..
второе - так и осталось загадкой, хотя вроде читал вдумчиво
пользовать Олли или СофтАйс? видимо версии сф с меткой 4
можно ковырять только лишь в Олли? а третью и возможно пятую
в софт-айс...
теперь не совсем понятно вот что: по идее схема процесса такова
отладчик запускает программу и перехватывает использованную
в защищенной программе АПИ-функцию которая является как бы
маркером того что: 1. программа полностью загружена в память
произошла первичная инициализация всех систем защищенной
программы, както загрузка длл-ок старфорса, проверка наличия
эмулирющих программ, наличие "оригинального" диска в приводе,
и общий старт программы (скорее всего много чего еще пропустил)
т.е. при бряке на такой функции-маркере имеем в памяти расшифрованный
дамп ехе с испорченной таблицей импорта и вызовами процедур из ВМ?
т.е. на этом этапе сохранив сей кусок памяти в исполняемый файл
имеем ли защищенный ехе со снятым протектором? т.е. только предварительно
криптованного ехе-файла. причем читая и обдумывая ВМ пришел к выводу что
работа ВМ сводится к сокрытию оригинальных функций системных библиотек user kernel
плюс криптование/шифрование процедур из защищенной программы.
может быть небольшое теоретическое описание процесса? предполагаю что так будет
немного легче новичкам вроде меня хотя бы знать с какой стороны подступится - а затем
уже если повезет перейти к детальному разбору в ПМ.
всётаки хотелось информативную вводную для исследований если таковое возможно
подозреваю что необходимо матчасть поучить...
зы: если чегото не того брякнул приношу извинения
|
|
Создано: 7 мая 2008 15:27:39 Личное сообщение #8
p3 пишет:
сомневающегося новичка
это хобби такое - прыгать в воду не зная броду?
----- Вольный художник с собакой
|
|
Создано: 7 мая 2008 17:47:03 Личное сообщение #9
не надо сердится - я же извинился заранее вродеп...
больше болтать не буду буду слушать
|
|
Создано: 7 мая 2008 19:56:28 Личное сообщение #10
Кроме не джельтельменского вздроча с дровами, для работы с физ_устройством , защита приложения, ни чем не отличаетЦо от другой серьёзной комерческой защиты.Схема по сути та же, только реализованно по "стариковски". Хотя по сложности, до многих авторских разработок, ей наверное далеко.Учитывая специфику приложения, из-за ресурсов которого, некоторые пиплы меняют конфиги, навесить на него не в 2-3 раза, а минимум 40-50 мега "упаковки", наталкивают на разные мысли, но только не положительные.
----- Чтобы юзер в нэте не делал,его всё равно жалко..
|
|
Создано: 7 мая 2008 19:59:13 Личное сообщение #11
undb
По опкоду самих команд, у мну нет пока уверености ваще никакой...
Чем больше инфо, тем больше моск плавитЦо..
Фишки с нопами зацепил все, фунок извне нет, если только не в другом потоке.Возможно старик эмулит "результат", а не сами команды.
//сорри, если ляпнул глупость..
Тот псевдокод, что приводил раньше у мну на приложении работает, и после вызова по коду приложения( очень глубоко), возвращаетЦо то же, что и в оригинале, за исключеним одного байта в буфере.Значит какой-то dword [reg] пропустил.
----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 8 мая 2008 20:41:16 · Поправил: Bronco Личное сообщение #12
Bronco пишет:
По опкоду самих команд, у мну нет пока уверености ваще никакой...
Чем больше инфо, тем больше моск плавитЦо..
BRO-HO-HO
В общем по эмуляции push reg:
Сначало "старик" берёт из таблицы [vm_esp], тупо вычитает 4,и кладёт обратно, потом вытаскивает адрес вм_таблицы, ну типо как "вм_регистр" .Потом своё бла-бла-бла, и в итоге исполняет [vm_reg], через push [eax]
MOV эмулирует почти также,а чего не хватает([reg+/-const]) лежит относительно edi+60/edi+48
У мну 100% родной код между олайнкомандами:
SUB ESP,168 <<-online_command
MOV EDX,[ESP+19C]
MOV ECX,[ESP+198]
PUSH EBP
MOV EAX,EBP
MOV EBP,[ESP+198]
PUSH ESI
MOV ESI,[ESP+198]
PUSH EDI
MOV [ESP+C],EAX
MOV EAX,[ESP+1AC]
MOV [ESP+14],EDX
MOV EDX,[ESI-84]
PUSH EDX
MOV [ESP+1C],EAX
MOV [ESP+28],ECX
MOV ECX,[ESP+1B4]
LEA EAX,[ESP+D4]
PUSH 00AE7BF8
PUSH EAX
CALL 004B81D0<<--online_command
На простые опкоды это стопудово не похоже, и потырил/"пошифровал" реально много...
----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 11 мая 2008 02:57:53 Личное сообщение #13
Братцы выручайте...
У мну пока, на 800 байт кода дешифрованной функи , 28 проверок, а края не видать.......
Полная жуть, с этими условными переходами.Иногда просто теряюсь, с определением их длинны
Как "старик" их чикает???
На проверках правлю флаги, в регистры зеро вписываю, в вм_таблице тоже, а ему похрен, один хрен тот же код дешифрует...
----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 11 мая 2008 20:38:14 Личное сообщение #14
Bronco пишет:
([reg+/-const]) лежит относительно edi+60/edi+48
молодца, этого я уже не находил
Bronco пишет:
Как "старик" их чикает???
заню только один способ , когда тесты на нопах , то там меняем их результат , только вот код функции может быть
test eax,eax << как бы поправили
mov bla,bla << это ты знаешь и оно выполняется без внимания на результат стравнения
......................
jnz exit << этот джамп должен сработать (при чем не известно что тут именно стоять будет jnb и тд)
mov bla , bla << в итоге разниза в одну инструкцию которая не выполняется
exit :
............. << дальнеший алго так же известен
скорее всего у тебя код функции какой то мудреный
стар заканчивает обработку инструкции путем вкладки в регистр определеную константу ( в основном ebx , но иногда меняет ) , константа даже при одной и тойже инструкции будет отличная от пред идущей ( так как она фигурирует в расшифровке кода ) , далее у стара есть особеность проверять hwid (cpuid в основном ) на него уходит так же большое количество операций, хоть и его результат в дальшем работает в расшифровке ( внутрених действий ). Я к чему клоню , то что ты мог попасться как раз на тот момент когда стар начинает проверять hwid, а там он вообще катры мутит.
mov ebp, dword_AA5508 << даже так
и еще вопрос на чем ты ломаешь все это дело ?
|
|
Создано: 12 мая 2008 01:53:21 · Поправил: Bronco Личное сообщение #15
undb пишет:
когда тесты на нопах , то там меняем их результат
Пробовал, но не помогает.
У мну кол-во "test cl,cl"на nop ужО сводит с ума..., а к примеру "cmp esi,ebx ", он "изголяетЦо" по своему, но не на nop.
и еще вопрос
Почти классическая Олюшка...
Ща просто есть возможность, более-менее комфортно пореверсить SFVM.
#######
По дешифровке/эмуляции инструкций.
//Пока делюсь впечатлениями, так что строго не судить.
Алго дешифровки не разгребал, push ID, долго и нудно лопатить, а эмулирует всё, что движетЦо и мона разбить на 2-3 части.
Опкод=eip_vm_code,Куда=ecx|=vm_reg, Откуда=eax|=vm_reg, а если присутствует константа, то const=edi+60 или 48, потм сохраняет результат в vm_table.
//для LEA аналогично
Но не всегда там, иногда "плавает" +/- 8 относительно "ebx|=VM_ADDR", когда "eax|=VM_REG"
У тех что на нопах, вроде два назначения."Очень сложные" + своего рода метки, и кажетЦо у этих меток есть внутренние ординалы.Ну это пока только предположение, может и ошибочное.Надо больше времени уделить служебному коду.
Ваще на участке между jmp_vm ....... bla-bla >>cld, в процессе интерактива, рисуетЦо много полезного инфо.
Пока основное препятсвие, это условия по коду "оригинальной функции".
Для примера, не вкурилсИ как правильно цикл собрать:
eax: 00AD63E2
ecx: 76B13EFF
online_command: MOV CL,BYTE PTR DS:[EAX]
-------------
INC EAX//ADD EAX,1 -?????
-------------
eax: 00AD63E3
ecx: 76B13E00
online_command: TEST CL,CL
//CL|=00
-------------
DEC EAX//SUB EAX,1 -?????
-------------
Итак чередуетЦо три раза подряд, потом (чтобы проще) так:
PUSH EDI
SUB EDX,1
PUSH EDX
MOV EAX,EDI
CALL 004C2870 <<-online_command
MOV ECX,EAX
ADD ESP,8<<-online_command
MOV BYTE [ESP+F4],0<<-online_command
SETE CL <<-online_command
//В оригинале true, а у мну false.
-------------
Кста, есть ещё неприятные моменты.Где-то сечёт дебаг, и начинает капризничать, заливая нулями table_vm.
----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 12 мая 2008 05:40:20 · Поправил: undb Личное сообщение #16
Bronco пишет:
не вкурилсИ как правильно цикл собрать:
ADD reg, const и SUB reg , const будет на нопах так как есть константа ака
ADD ESP,8<<-online_command
SUB ESP,168 <<-online_command
иначе если бы стар и умел прибавлять константы, то выше приведенный код так же исполнялся в вм.
так что *кременты
Bronco пишет:
Кста, есть ещё неприятные моменты.Где-то сечёт дебаг, и начинает капризничать, заливая нулями table_vm.
Любое изменение вм (хоть int 3 (бряк) )ведет к изменению контрольной суммы ( если можно так выразится ) антипач так сказать , после чего стар с грохотом падает. Один из выходов, не убивая антипач это, хардваре бряки и бряки на чтение\запись но с последними медленно работает.
Внимание можно обратить на jmp edx, как бы тоже сигнализирует от том что блок он закончил и началось новое действие.
Bronco пишет:
Почти классическая Олюшка...
не в смысле жертва. Постараюсь нати чтоб хоть иметь понятия с чам именно имеем дело.
cmp esi,ebx
может быть , но тогда проверка и установка флагов , два варианта или он берет из таблицы флаги и регитсты потом где нить востанавливает флаги и проводит
popfd
mov reg1,dword[var_reg1]
mov reg2,dword[var_reg2]
cmp reg1, reg2
pushfd
или каждый регистр сам сравнивает и сам ручками устнавливает флаги ( что мало вероятно, так как сильно мутороно для него будет )
|
|
Создано: 12 мая 2008 11:00:08 · Поправил: Bronco Личное сообщение #17
undb пишет:
если бы стар и умел прибавлять константы
Где то так, по вычитанию ( сам наблюдал), думаю что прибавления разница только в опкоде команды:
sub ecx,[edx]
eax|=vm_reg
ecx|=[vm_reg]//dword того, что в eax
edx|=vm_addr
[vm_addr]|=const
Точно по регистрам не помню, но то что в живую исполняет, это факт.
Опкоды mov;lea; почти таким же способом.
=======
Про цикл мну непонятно, если cl|=00, то нах ещё два раза проверять??
и как это расписать, если только не в три отдельных проверки???
Внимание можно обратить на jmp edx
je 1
jmp edx
1:
mov куда,[откуда]
Да с него ковыряние практически и началось, дальше вылез на call[eax] , ну а потИм, на нопики...
в смысле жертва
SF.4.7
VSK5
//море_океяны, парусы_регаты
----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 20 мая 2008 20:00:44 Личное сообщение #18
hp://binural.ru/news/1147842190-starfors-5.0.8.2-bolshe-ne-pomekha.htm l
уквально некоторое время назад был опубликован способ запуска игр, с защитой Starforce 5.0.8.2(последення версия на данный момент)
Сам не пробовал еще.
----- Идите на...хотя постойте!
|
|
Создано: 21 мая 2008 00:58:38 Личное сообщение #19
di-2
Суть в том, что как ни крути это тормоза для комфортного удовольстия геймера,и это факт.Игрухи долго грузятЦо, зависают, и слетают при выходе.А если работают, то жрут немерено ресурсов.За свой бабос, это занадто....
----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 28 мая 2008 14:57:05 Личное сообщение #20
наконец то надыбал диск сталкера у друга начал пробовать запускать под откладчиком выскакивает табличка типо введити ключ ввожу пишет что не правильный так запускаю запускается(вне откладчика)
|
|
Создано: 28 мая 2008 14:58:57 Личное сообщение #21
UzVeR
выскакивает табличка типо введити ключ ввожу пишет что не правильный так запускаю запускается
а ты попробуй без отладчика с зажатым shift`ом запустить...
|
|
Создано: 28 мая 2008 15:02:54 Личное сообщение #22
Всё разобрался спс
|
|
Создано: 24 июня 2008 18:20:50 Личное сообщение #23
У меня фундаментальный, а потому тупой вопрос: вот у 3-го стара int3 был перехвачен, и в его обработчике транслятор ВМ сидел. Если 5-й стар инты не хучит, то где ВМ?
|
|
Создано: 24 июня 2008 19:58:00 Личное сообщение #24
В protect.dll отдельная секция.
|
|
Создано: 24 июня 2008 20:12:16 Личное сообщение #25
У, как всё просто... А я параноидально воображал установку ексепшенов на недопустимый опкод.
|
|
Создано: 24 июня 2008 23:16:21 Личное сообщение #26
Если раньше было basic/pro
то теперь basic/pro/elite.
В elite только антиэмуляция круче ? или защита кода тоже.
|
|
Создано: 26 июня 2008 20:52:46 Личное сообщение #27
ктонить может видеотутор про СФ 3 базик сделать ? (хотябы в личку)
|
|
Создано: 26 июня 2008 22:13:03 Личное сообщение #28
Dred пишет:
ктонить может видеотутор про СФ 3 базик сделать ? (хотябы в личку)
+1, тоже охотно бы глянул, про любой 3.х, у меня получалось делать копию такого диска (игра Postal 2, и Стар воспринимал копию как оригинал), но хотелось бы полностью NoCD делать для игр.
----- Don_t hate the cracker - hate the code.
|
|
Создано: 27 июня 2008 10:44:26 Личное сообщение #29
Есть какая нибудь прога с навешанным старом? А то покупать диск с игрой не охото
----- Research For Food
|
|
Создано: 27 июня 2008 12:18:32 Личное сообщение #30
mysterio пишет:
тоже охотно бы глянул, про любой 3.х
Есть тутор от PAKHAN + тутор у китайчегов --> Link <-- Он, кстати, входит в состав сборника туторов по распаковке от PEDIY --> Link <--
Можно было бы перевести, но у меня нет самой "жертвы" к тутору... Может кто-нибудь поделится?
daFix пишет:
Есть какая нибудь прога с навешанным старом? А то покупать диск с игрой не охото
Есть на tuts4you анпакми со старом 4.50.
----- Если тебя обсуждают за спиной, значит ты впереди! |
|
Создано: 27 июня 2008 13:10:33 Личное сообщение #31 |
|