Сейчас на форуме: bartolomeo, asfa, _MBK_ (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Распаковка StarForce 4.70 - Пьеса в нескольких действиях |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
Посл.ответ | Сообщение |
|
Создано: 27 октября 2011 23:54 · Личное сообщение · #1 Информации об исследовании данной защиты в свободном доступе почти нет,кроме мануала про снятие SF 5.50 с игры King's Bounty. Особого интереса этот мануал не представляет по той причине,что на игру есть нормальные NoDVD. Идея была такая - снять дамп с запущенного через эмулятор процесса ,затем восстанавливать недостающие процедуры из Protect.dll. Версия 4.70 очень поганая, запустить её с эмулятором удается с 10-15 раза. Если в отладчике открывать сам exe-файл ,то после тыкания Shift+F9 выбрасывает в Protect.dll . Никакого EP нет. Вообщем пусть гуру объяснят как тут надо действовать ![]() |
|
Создано: 30 октября 2011 23:20 · Поправил: Nightshade · Личное сообщение · #2 Когда я писал про кучу переменных в вм, я и имел ввиду область после регистров вм. Там тоже 64 битные числа, но вм не может их использовать впрямую. Но может сохранять регистры по адресам в стиле контекствм+смещение. Выход из регистровой вм раньше выглядел как je xxx, jmp edx. Прыжок через едх - выход. В вм еще есть команды смены байткода. Иногда это просто смена области данных, иногда прыжки виртуализованные. В новых вм есть прыжки через регистры вм по адресам байткода. В теории вм надо анализировать в статике. При динамическом исполнении тяжело следить за циклами внутри вм ![]() |
|
Создано: 30 октября 2011 23:39 · Личное сообщение · #3 |
|
Создано: 31 октября 2011 00:04 · Личное сообщение · #4 |
|
Создано: 31 октября 2011 00:56 · Личное сообщение · #5 Результат ковыряний VM за день в виде лога. База protect.dll была 820000 ![]() ![]() |
|
Создано: 31 октября 2011 01:30 · Личное сообщение · #6 |
|
Создано: 31 октября 2011 01:31 · Поправил: [Nomad] · Личное сообщение · #7 |
|
Создано: 31 октября 2011 09:01 · Личное сообщение · #8 Это уже давняя традиция кряклаба, раз в полгода приходит Занавес. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 31 октября 2011 09:37 · Поправил: Nightshade · Личное сообщение · #9 Как нетрудно заметить case на 4 варианта кода - это всего лишь размер инструкции. Byte, word, dword, qword. Кстати биты, для расшифровки данных инструкции и её размера могут иметь разное смещение в разных билдах. Так что битовые поля надо анализировать на каждой вм отдельно, на основе анализа примитивов. ![]() |
|
Создано: 31 октября 2011 14:21 · Поправил: Calypso · Личное сообщение · #10 PE_Kill Я тебе могу даже объяснить почему так происходит - нет инфы. Единственный мануал на nodvd.net и Кингс Боунти (там кстати ВМ распаковывают,но версия 5.5) Поэтому предлагаю сначала простой способ реализовать, скорее всего идея разобрать ВМ как раз таки спустится на тормозах ,ибо большинство и я в том числе вообще не понимают о чем речь Даже начнем с того что распаковка ВМ это совсем не для новичков задача ![]() |
|
Создано: 31 октября 2011 14:31 · Поправил: Nightshade · Личное сообщение · #11 После дампа вм надо фиксить цпуиды в ней. Это делается 2 путями. Эмуляция команды и фикс всей крк вм или подмена криптованного значения cpuid в вм при запуске. Оба мануала есть в подполье. Соответственно сделать это могут единицы на этом форуме. Дело это муторное и возится многим просто лень. Вон Veliant разбирает вм - хоть что-то делает. А пофиксить дамп никто не хочет. Как делается дамп вм: К секции ехе добавляется пустая секция. Protect.dll распаковывается и фиксятся проверки на распакованность. При запуске, все VirtualAlloc и подменяются адресами из пустой секции, чтобы память вм была вся в одном месте в файле. На оеп дампим файл с новой секцией(там где выделенные вм блоки) и всю протект длл(можно попробовать только первую секцию - тоже должно работать). Потом к файлу клеят протект.длл отдельной секцией, по тому адресу где она была загружена. Тогда имеем рабочий дамп с вм. В чем косяк? Он будет работать только у вас) . Вм использует cpuid в своей работе. Надо подделывать значения cpuid или проверку его. В новых версиях привязок намного больше. Про антидамп немного здесь http://exelab.ru/faq/StarForce ![]() |
|
Создано: 31 октября 2011 15:04 · Поправил: Kylak · Личное сообщение · #12 Calypso пишет: на nodvd.net и Кингс Боунти (там кстати ВМ распаковывают,но версия 5.5) На nodvd.net вполне себе пример отлома 4.7, какраз то, что ты просил. На "Кингс Боунти" НЕ распаковывают ВМ ![]() ![]() |
|
Создано: 31 октября 2011 15:21 · Личное сообщение · #13 |
|
Создано: 31 октября 2011 16:13 · Личное сообщение · #14 Calypso пишет: Я тебе могу даже объяснить почему так происходит - нет инфы. Неее, это я могу объяснить почему так происходит. Те, кто тут создает топики про SF (включая тебя) не знают даже как пользоваться отладчиком, естественно, что и спросить по делу ничего не могут, ибо не знают простейших вещей. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 31 октября 2011 16:25 · Поправил: ThugboyZ · Личное сообщение · #15 |
|
Создано: 31 октября 2011 16:31 · Личное сообщение · #16 PE_Kill пишет: Неее, это я могу объяснить почему так происходит. Хорош троллить молодеж. По факту новички просто не могут соизмерить свои силы с сложностью протектора. А те, у кого силенок хватит, у тех как правило времени мало, либо желания ковырять. Так что думаю ни к чему это превращать в флудо-топик очередной. По факту - пусть учатся сначала восстанавливать чистый импорт к дампу, а те кто научился пусть учатся дампить вм и подгружать своим кодом. Чего по пусту воду толоч? Уже и так несколько раз обьяснили как ВМ дампится, уточнить можно только технические какие-то неувязки при попытке запустить все это ![]() |
|
Создано: 31 октября 2011 16:36 · Поправил: Nightshade · Личное сообщение · #17 Не надо подгружать вм своим кодом. Это довольно хреновый метод. Намного надежнее клеить вм в отдельную секцию. Кстати есть еще метод основанный на подмене ответа драйвера при проверке диска и подмена контекста вм в этот момент. 2пекил: Ну глуп и молод еще ТС. Как сказал велиант, нафиг ты то ведешь себя так же как ТС?(это риторический вопрос, не флудь здесь дальше) ![]() |
|
Создано: 31 октября 2011 17:41 · Личное сообщение · #18 Veliant пишет: Хорош троллить молодеж. По факту новички просто не могут соизмерить свои силы с сложностью протектора. По факту новички вообще не знают ничего и если бы это был не SF, то давно бы отправили в запросы на взлом, а т.к. эта тема многим интересна, то начинается мегафлуд, так что не надо. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 31 октября 2011 17:56 · Личное сообщение · #19 |
|
Создано: 31 октября 2011 18:02 · Личное сообщение · #20 |
|
Создано: 31 октября 2011 18:19 · Поправил: ThugboyZ · Личное сообщение · #21 В принципе тут понятны и одни и другие, те кто разобрал и держит в привате - чтобы стар не позакрывал дыры, те кто хочет но не знает как - нехватка знаний и не желание учиться, по себе знаю сам не так давно пытался стар копать ![]() ps: кстати в старе сейчас не самая мощная ВМ, помню смотрел Solidshield 1.XX какой-то там версии где около 100мб пикода вот это реально ![]() ![]() |
|
Создано: 31 октября 2011 18:22 · Поправил: Calypso · Личное сообщение · #22 Берите пример с Nightshade ,он пишет всё по теме и не флудит. Если б все так писали,не было "10 страниц бессмысленного бреда среди которых пара умных мыслей" ThugboyZ пишет: Одно понятно, что сам он не анпакнет, ждёт пока кто-нибудь уже сдампит и выложит кряк. Ну ты сам тоже кроме дампа из Олли пока ничего не выложил ![]() ThugboyZ пишет: В принципе тут понятны и одни и другие, те кто разобрал и держит в привате - чтобы стар не позакрывал дыры, те кто хочет но не знает как - нехватка знаний и не желание учиться, по себе знаю сам не так давно пытался стар копать благо перешёл на арму и доволен)) ps: кстати в старе сейчас не самая мощная ВМ, помню смотрел Solidshield 1.XX какой-то там версии где около 100мб пикода вот это реально Вот эти вот демагогии тоже не знаю зачем тут писать... Чем больше будете флудить тем меньше надежды получить результат ![]() |
|
Создано: 31 октября 2011 18:30 · Личное сообщение · #23 Calypso пишет: Чем больше будете флудить тем меньше надежды получить результат От флуда у тебя силы заканчиваются что ли? На чем подвис, может помочь? ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 31 октября 2011 18:41 · Поправил: Calypso · Личное сообщение · #24 PE_Kill пишет: На чем подвис, может помочь? Protect.dll не распаковывается от UPX, QuickUnpack 2.1 делает файл 8 МБ а на диске всего 200 кб Ну и конечно скриншот из OllyDbg нужен посмотреть что и куда дампить - сделать его 1 минуту, зато более понятно чем писать слова. Я например не знаю как сделать пустую секцию и скопировать туда код виртуальной машины ![]() |
|
Создано: 31 октября 2011 19:18 · Личное сообщение · #25 |
|
Создано: 31 октября 2011 19:20 · Поправил: Calypso · Личное сообщение · #26 ThugboyZ Тролль детектед. Возьми распакуй раз такой умный, библиотека в аттаче есть. Сам ноль полный и пальцы гнешь тут Вообще складывается впечатление что тут Nightshade и Veliant только в теме, остальные пришли пофлудить Это подтверждается например тем, что до сих пор никто не смог сделать этот самый дамп ВМ (если это так просто). А языком чесать это и я умею ![]() ![]() |
|
Создано: 31 октября 2011 19:43 · Личное сообщение · #27 Кстати вот пример выхода из вм в морфленный код 1058DB5C 09C9 OR ECX,ECX 1058DB5E 0F84 02000000 JE 1058DB66 1058DB64 ^ FFE2 JMP EDX ; protect.1021FC55 Если просто загрузить длл в отладчик то адреса совпадут. У меня длл со снятым упх. ThugboyZ забей на ТС. Он тут для нашего настроения ![]() Может еще чего из топика выжмем. Дамп сделать не могут потому, что нет образа диска у многих. Veliant у тебя нет идей как на автомате собрать все хендлеры скажем в текстовик?(на автомате, не руками). Начинаются они одиннаково. Но вот лапша из условных джампов меня напрягает. ![]() |
|
Создано: 31 октября 2011 19:45 · Личное сообщение · #28 Пацан шёл к успеху, но upx его подкосило... ----- the Power of Reversing team ![]() |
|
Создано: 31 октября 2011 19:52 · Поправил: Veliant · Личное сообщение · #29 Nightshade пишет: у тебя нет идей как на автомате собрать все хендлеры скажем в текстовик? Совсем автоматически я сомневаюсь что выйдет. Полу-автоматически - собрать лог после trace into в olly. Но минус в том, что только одну ветку за раз пройдет. А если самим писать - то без эмуляции процессора или трейса команд ненужные ветки тоже не отбросишь если рекурсивно спускаться по ветвям Кстати я сам не шибко в теме про SF. Просто пару раз снимал Basic версии и не более того. ![]() |
|
Создано: 31 октября 2011 20:05 · Поправил: Calypso · Личное сообщение · #30 Veliant пишет: Кстати я сам не шибко в теме про SF. Просто пару раз снимал Basic версии и не более того Ну тогда действительно всё безнадежно. Тривиумы тут вряд ли будут выкладывать свои наработки Кому не в лом,сделайте скрины как сдампить ВМ ,вообщем минимануал. И на этом тему можно закрывать, т.к. название не соответствует содержимому (я думал тут Basic версия без ВМ) и кроме того это совсем не для новичков ![]() |
|
Создано: 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 - Пьеса в нескольких действиях |
Эта тема закрыта. Ответы больше не принимаются. |