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

 eXeL@B —› Вопросы новичков —› Распаковка StarForce 4.70 - Пьеса в нескольких действиях
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
Посл.ответ Сообщение

Ранг: 6.9 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 27 октября 2011 23:54
· Личное сообщение · #1

Информации об исследовании данной защиты в свободном доступе почти нет,кроме мануала про снятие SF 5.50 с игры King's Bounty. Особого интереса этот мануал не представляет по той причине,что на игру есть нормальные NoDVD.
Идея была такая - снять дамп с запущенного через эмулятор процесса ,затем восстанавливать недостающие процедуры из Protect.dll.
Версия 4.70 очень поганая, запустить её с эмулятором удается с 10-15 раза.
Если в отладчике открывать сам exe-файл ,то после тыкания Shift+F9 выбрасывает в Protect.dll . Никакого EP нет.
Вообщем пусть гуру объяснят как тут надо действовать




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 30 октября 2011 23:20 · Поправил: Nightshade
· Личное сообщение · #2

Когда я писал про кучу переменных в вм, я и имел ввиду область после регистров вм. Там тоже 64 битные числа, но вм не может их использовать впрямую. Но может сохранять регистры по адресам в стиле контекствм+смещение. Выход из регистровой вм раньше выглядел как je xxx, jmp edx. Прыжок через едх - выход. В вм еще есть команды смены байткода. Иногда это просто смена области данных, иногда прыжки виртуализованные. В новых вм есть прыжки через регистры вм по адресам байткода. В теории вм надо анализировать в статике. При динамическом исполнении тяжело следить за циклами внутри вм



Ранг: 6.9 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 30 октября 2011 23:39
· Личное сообщение · #3

Ну игр с 3-4 версией уже много лет не выпускают, смысла привата как бы особо нет.
Пока будете разбирать ВМ, объясните для дебилов как сделать дамп виртуальной машины - нужно дампить модуль PROTECT из памяти когда игра запущена?



Ранг: 22.5 (новичок), 18thx
Активность: 0.050
Статус: Участник

Создано: 31 октября 2011 00:04
· Личное сообщение · #4

Нужно дампить секцию core(сама ВМ) и выделенную память.

| Сообщение посчитали полезным: Calypso

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

Создано: 31 октября 2011 00:56
· Личное сообщение · #5

Результат ковыряний VM за день в виде лога. База protect.dll была 820000

3131_30.10.2011_EXELAB.rU.tgz - starforceVM_cmd.txt

| Сообщение посчитали полезным: ARCHANGEL

Ранг: 6.9 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 31 октября 2011 01:30
· Личное сообщение · #6

[Nomad] пишет:
Нужно дампить секцию core(сама ВМ) и выделенную память.

Чего то не вижу там такую секцию. Покажите на скриншоте если можно где её найти



Ранг: 22.5 (новичок), 18thx
Активность: 0.050
Статус: Участник

Создано: 31 октября 2011 01:31 · Поправил: [Nomad]
· Личное сообщение · #7

Дык распакуй упх Затем надо убить проверку хидера в протект.длл. Потом можно грузить в олю и на ОЕР дампить секцию и память.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 31 октября 2011 09:01
· Личное сообщение · #8

Это уже давняя традиция кряклаба, раз в полгода приходит мессия новичок, который не знает, что такое отладчик, етц. и начинает рьяно анпакать SF, при этом говоря, что никто не помогает, а там фигня, вон я до OEP уже дошел. Потом начинают потихоньку вклиниваться профи (?), почему то рассказывая как они снимали секур и прочих конкурентов, потом кто то начинает сравнивать версии стара и говорить, а вот раньше.... Ну и наконец новичок уже просто начинает психовать, ибо сам то нифига не делает, и не умеет делать, а народ лишь флудит и топик закрывается.

Занавес.

-----
Yann Tiersen best and do not fuck


| Сообщение посчитали полезным: ClockMan, tihiy_grom


Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 31 октября 2011 09:37 · Поправил: Nightshade
· Личное сообщение · #9

Как нетрудно заметить case на 4 варианта кода - это всего лишь размер инструкции. Byte, word, dword, qword. Кстати биты, для расшифровки данных инструкции и её размера могут иметь разное смещение в разных билдах. Так что битовые поля надо анализировать на каждой вм отдельно, на основе анализа примитивов.



Ранг: 6.9 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 31 октября 2011 14:21 · Поправил: Calypso
· Личное сообщение · #10

PE_Kill
Я тебе могу даже объяснить почему так происходит - нет инфы. Единственный мануал на nodvd.net и Кингс Боунти (там кстати ВМ распаковывают,но версия 5.5)
Поэтому предлагаю сначала простой способ реализовать, скорее всего идея разобрать ВМ как раз таки спустится на тормозах ,ибо большинство и я в том числе вообще не понимают о чем речь
Даже начнем с того что распаковка ВМ это совсем не для новичков задача




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 31 октября 2011 14:31 · Поправил: Nightshade
· Личное сообщение · #11

После дампа вм надо фиксить цпуиды в ней. Это делается 2 путями. Эмуляция команды и фикс всей крк вм или подмена криптованного значения cpuid в вм при запуске. Оба мануала есть в подполье. Соответственно сделать это могут единицы на этом форуме. Дело это муторное и возится многим просто лень. Вон Veliant разбирает вм - хоть что-то делает. А пофиксить дамп никто не хочет.
Как делается дамп вм:
К секции ехе добавляется пустая секция. Protect.dll распаковывается и фиксятся проверки на распакованность. При запуске, все VirtualAlloc и подменяются адресами из пустой секции, чтобы память вм была вся в одном месте в файле. На оеп дампим файл с новой секцией(там где выделенные вм блоки) и всю протект длл(можно попробовать только первую секцию - тоже должно работать). Потом к файлу клеят протект.длл отдельной секцией, по тому адресу где она была загружена. Тогда имеем рабочий дамп с вм. В чем косяк? Он будет работать только у вас) . Вм использует cpuid в своей работе. Надо подделывать значения cpuid или проверку его. В новых версиях привязок намного больше.
Про антидамп немного здесь http://exelab.ru/faq/StarForce

| Сообщение посчитали полезным: Calypso, SReg

Ранг: 3.0 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 31 октября 2011 15:04 · Поправил: Kylak
· Личное сообщение · #12

Calypso пишет:
на nodvd.net и Кингс Боунти (там кстати ВМ распаковывают,но версия 5.5)

На nodvd.net вполне себе пример отлома 4.7, какраз то, что ты просил. На "Кингс Боунти" НЕ распаковывают ВМ Там джампы в ВМ, а это фиксится скриптом из статьи (кстати для особо одаренных, в скрипте есть мааааленькая ошибочка (может уже пофиксили), и скорей всего поэтому он не работает у большинства кулхацкеров). Джампы в ВМ и пикод - разные вещи какбэ.




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 31 октября 2011 15:21
· Личное сообщение · #13

На кингс баунти есть куча джампов в пикод, которые запарываются скриптом из статьи. Чудо, что потом что-то работает. Это когда пкод не используется можно убивать прыжки в вм скриптом.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 31 октября 2011 16:13
· Личное сообщение · #14

Calypso пишет:
Я тебе могу даже объяснить почему так происходит - нет инфы.

Неее, это я могу объяснить почему так происходит. Те, кто тут создает топики про SF (включая тебя) не знают даже как пользоваться отладчиком, естественно, что и спросить по делу ничего не могут, ибо не знают простейших вещей.

-----
Yann Tiersen best and do not fuck




Ранг: 10.9 (новичок), 5thx
Активность: 0.060
Статус: Участник

Создано: 31 октября 2011 16:25 · Поправил: ThugboyZ
· Личное сообщение · #15

В общем надо дампить вм и всю выделеную память, прилеплять в данном случае к ехешнику секцию sforce3 из protect.dll, и фигачить цпуиды. Благо в 4ой версии их вроде всего 4е.



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

Создано: 31 октября 2011 16:31
· Личное сообщение · #16

PE_Kill пишет:
Неее, это я могу объяснить почему так происходит.

Хорош троллить молодеж. По факту новички просто не могут соизмерить свои силы с сложностью протектора. А те, у кого силенок хватит, у тех как правило времени мало, либо желания ковырять.
Так что думаю ни к чему это превращать в флудо-топик очередной.

По факту - пусть учатся сначала восстанавливать чистый импорт к дампу, а те кто научился пусть учатся дампить вм и подгружать своим кодом. Чего по пусту воду толоч? Уже и так несколько раз обьяснили как ВМ дампится, уточнить можно только технические какие-то неувязки при попытке запустить все это




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 31 октября 2011 16:36 · Поправил: Nightshade
· Личное сообщение · #17

Не надо подгружать вм своим кодом. Это довольно хреновый метод. Намного надежнее клеить вм в отдельную секцию. Кстати есть еще метод основанный на подмене ответа драйвера при проверке диска и подмена контекста вм в этот момент.
2пекил: Ну глуп и молод еще ТС. Как сказал велиант, нафиг ты то ведешь себя так же как ТС?(это риторический вопрос, не флудь здесь дальше)




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 31 октября 2011 17:41
· Личное сообщение · #18

Veliant пишет:
Хорош троллить молодеж. По факту новички просто не могут соизмерить свои силы с сложностью протектора.

По факту новички вообще не знают ничего и если бы это был не SF, то давно бы отправили в запросы на взлом, а т.к. эта тема многим интересна, то начинается мегафлуд, так что не надо.

-----
Yann Tiersen best and do not fuck




Ранг: 10.9 (новичок), 5thx
Активность: 0.060
Статус: Участник

Создано: 31 октября 2011 17:56
· Личное сообщение · #19

Одно понятно, что сам он не анпакнет, ждёт пока кто-нибудь уже сдампит и выложит кряк.



Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 31 октября 2011 18:02
· Личное сообщение · #20

ThugboyZ пишет:
ждёт пока кто-нибудь уже сдампит и выложит кряк.

лучше тутор.



Ранг: 10.9 (новичок), 5thx
Активность: 0.060
Статус: Участник

Создано: 31 октября 2011 18:19 · Поправил: ThugboyZ
· Личное сообщение · #21

В принципе тут понятны и одни и другие, те кто разобрал и держит в привате - чтобы стар не позакрывал дыры, те кто хочет но не знает как - нехватка знаний и не желание учиться, по себе знаю сам не так давно пытался стар копать благо перешёл на арму и доволен))
ps: кстати в старе сейчас не самая мощная ВМ, помню смотрел Solidshield 1.XX какой-то там версии где около 100мб пикода вот это реально



Ранг: 6.9 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 31 октября 2011 18:22 · Поправил: Calypso
· Личное сообщение · #22

Берите пример с Nightshade ,он пишет всё по теме и не флудит. Если б все так писали,не было "10 страниц бессмысленного бреда среди которых пара умных мыслей"
ThugboyZ пишет:
Одно понятно, что сам он не анпакнет, ждёт пока кто-нибудь уже сдампит и выложит кряк.

Ну ты сам тоже кроме дампа из Олли пока ничего не выложил Так что уж чья бы мычала
ThugboyZ пишет:
В принципе тут понятны и одни и другие, те кто разобрал и держит в привате - чтобы стар не позакрывал дыры, те кто хочет но не знает как - нехватка знаний и не желание учиться, по себе знаю сам не так давно пытался стар копать благо перешёл на арму и доволен))
ps: кстати в старе сейчас не самая мощная ВМ, помню смотрел Solidshield 1.XX какой-то там версии где около 100мб пикода вот это реально

Вот эти вот демагогии тоже не знаю зачем тут писать... Чем больше будете флудить тем меньше надежды получить результат




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 31 октября 2011 18:30
· Личное сообщение · #23

Calypso пишет:
Чем больше будете флудить тем меньше надежды получить результат

От флуда у тебя силы заканчиваются что ли? На чем подвис, может помочь?

-----
Yann Tiersen best and do not fuck


| Сообщение посчитали полезным: Bronco

Ранг: 6.9 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 31 октября 2011 18:41 · Поправил: Calypso
· Личное сообщение · #24

PE_Kill пишет:
На чем подвис, может помочь?

Protect.dll не распаковывается от UPX, QuickUnpack 2.1 делает файл 8 МБ а на диске всего 200 кб
Ну и конечно скриншот из OllyDbg нужен посмотреть что и куда дампить - сделать его 1 минуту, зато более понятно чем писать слова. Я например не знаю как сделать пустую секцию и скопировать туда код виртуальной машины



Ранг: 10.9 (новичок), 5thx
Активность: 0.060
Статус: Участник

Создано: 31 октября 2011 19:18
· Личное сообщение · #25

Calypso пишет:
Protect.dll не распаковывается от UPX

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



Ранг: 6.9 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 31 октября 2011 19:20 · Поправил: Calypso
· Личное сообщение · #26

ThugboyZ
Тролль детектед. Возьми распакуй раз такой умный, библиотека в аттаче есть. Сам ноль полный и пальцы гнешь тут
Вообще складывается впечатление что тут Nightshade и Veliant только в теме, остальные пришли пофлудить
Это подтверждается например тем, что до сих пор никто не смог сделать этот самый дамп ВМ (если это так просто). А языком чесать это и я умею




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 31 октября 2011 19:43
· Личное сообщение · #27

Кстати вот пример выхода из вм в морфленный код
1058DB5C 09C9 OR ECX,ECX
1058DB5E 0F84 02000000 JE 1058DB66
1058DB64 ^ FFE2 JMP EDX ; protect.1021FC55

Если просто загрузить длл в отладчик то адреса совпадут. У меня длл со снятым упх.
ThugboyZ забей на ТС. Он тут для нашего настроения
Может еще чего из топика выжмем.
Дамп сделать не могут потому, что нет образа диска у многих.
Veliant у тебя нет идей как на автомате собрать все хендлеры скажем в текстовик?(на автомате, не руками). Начинаются они одиннаково. Но вот лапша из условных джампов меня напрягает.




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 31 октября 2011 19:45
· Личное сообщение · #28

Пацан шёл к успеху, но upx его подкосило...

-----
the Power of Reversing team


| Сообщение посчитали полезным: Dart Sergius, SReg, ThugboyZ, Veliant, Cigan, Kylak, Psalmopoeus Pulcher, PE_Kill, HandMill, kioresk

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

Создано: 31 октября 2011 19:52 · Поправил: Veliant
· Личное сообщение · #29

Nightshade пишет:
у тебя нет идей как на автомате собрать все хендлеры скажем в текстовик?

Совсем автоматически я сомневаюсь что выйдет. Полу-автоматически - собрать лог после trace into в olly. Но минус в том, что только одну ветку за раз пройдет. А если самим писать - то без эмуляции процессора или трейса команд ненужные ветки тоже не отбросишь если рекурсивно спускаться по ветвям

Кстати я сам не шибко в теме про SF. Просто пару раз снимал Basic версии и не более того.



Ранг: 6.9 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 31 октября 2011 20:05 · Поправил: Calypso
· Личное сообщение · #30

Veliant пишет:
Кстати я сам не шибко в теме про SF. Просто пару раз снимал Basic версии и не более того

Ну тогда действительно всё безнадежно. Тривиумы тут вряд ли будут выкладывать свои наработки
Кому не в лом,сделайте скрины как сдампить ВМ ,вообщем минимануал. И на этом тему можно закрывать, т.к. название не соответствует содержимому (я думал тут Basic версия без ВМ) и кроме того это совсем не для новичков




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 31 октября 2011 20:07
· Личное сообщение · #31

все хендлеры начинаются так
10573000 8B57 00 MOV EDX,DWORD PTR DS:[EDI] ; protect.100E0473
10573003 0B9F F0000000 OR EBX,DWORD PTR DS:[EDI+F0] - мусор
10573009 8B42 00 MOV EAX,DWORD PTR DS:[EDX]
1057300C 8B57 08 MOV EDX,DWORD PTR DS:[EDI+8]
1057300F 3342 00 XOR EAX,DWORD PTR DS:[EDX]
10573012 8B57 10 MOV EDX,DWORD PTR DS:[EDI+10]
10573015 3342 00 XOR EAX,DWORD PTR DS:[EDX]
10573018 8B97 70000000 MOV EDX,DWORD PTR DS:[EDI+70] - мусор
1057301E 8B57 18 MOV EDX,DWORD PTR DS:[EDI+18]
10573021 3342 00 XOR EAX,DWORD PTR DS:[EDX]
10573024 8947 20 MOV DWORD PTR DS:[EDI+20],EAX
Если искать такие места, отбрасывая мусор и прыжки, то можно и автоматом найти все начала хэндлеров.
Дальше нужно распознавание хэндлеров. Вот с этим сложнее. Нужны шаблоны каждого хэндлера. Дальше в каждом хэндларе надо анализировать сдвиги(они разные для одного и того же хендлера в разных файлах или билдах вм). Потом, зная начальные значения eip1-eip4 edi+38, можно в статике трейсить ленту байткода. Далее, если сделать вставки псевдокода вместо вызовов вм, можно вообще избавится от вм с байткодом. Вопрос... Насколько это реализуемо?


<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
 eXeL@B —› Вопросы новичков —› Распаковка StarForce 4.70 - Пьеса в нескольких действиях
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати