Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 3 апреля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

АРХИВ ФОРУМА eXeL@B
https://exelab.ru/f/

   

блокирует закрытие Olly и проходит к tempOEP.

блокирует закрытие Olly и проходит к tempOEP.

ZX пишет:
цитата:
а как там найти stolen code, не имею понятия, мож подскажешь чуток с чем его едят.


stolen code - это спёртые байты, тоесть будет типа
call xx // здесь вместо call должны быть другие команды
xx JMP DWORD PTR DS:[адрес вне exe]
этот адрес - ячейка таблицы, которая состоит из ссылок на краденые байты (тоже таблица).
Тоесть команды которые заменены на call выполняются в протекторе.
В v 1.09g можно обойтись перенаправлением jmp и правкой таблиц (что бы всё это было направлено в пространоство exe), делается правкой начальных значений в циклах создания таблиц и jmp’ов.
В v 1.10 обращения к stolen code устроено несколько подругому, и там уже нужно свою процедуру писать, чтобы
поправить вызовы stolen code.

PS почитай туторы Рикардо, там всё подробно расписано.

PPS кста в новой арме тоже есть stolen code.

ZX :: Так я в оле и извращался, мне ж интересно было, хотя потом выловил айсом TerminateProcess 655E1A pop eax и pop eax, ну и дальше возюкайся, для детей защита, только раздражает и хочется еще больше все переломать. Вот у меня обжектДок висит, пулю запускаешь и нет обжектДока. У программеров с мозгами невпорядке.
Mario555 пишет:
цитата:
которая состоит из ссылок на краденые байты (тоже таблица).


О видел я ее, даже восстановил, одну функцию, я ж не знал шо ето тако. Ну она там огромная, тем способом которым я восстанавливал вся ночь уйдет. Ну пошел нашел тот экцепшин потом бац таблица (я ж не зал, что это за гадость, хотя она не такая страшная, как мне казалось :) ), а она нулями заполнена, я тогда из живой проги адрес и функцию подсунул.
значит 474А32 это настоящий ОЕР? Да, одно уже радует
00474F32 /$ 53 PUSH EBX
00474F33 ¦. 56 PUSH ESI
00474F34 ¦. 57 PUSH EDI
00474F35 ¦. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00474F38 ¦. FF15 90F26600 CALL DWORD PTR DS:[‹&kernel32.#456›] ; kernel32.GetVersion
А где пуш ~ п? или я торможу?

ZX :: Нда, скриптик симпатичный, несколько вопросов отпало , на счет того где искать ОЕР, да.. Пошел искать сдк.

Mario555 :: ZX пишет:
цитата:
А где пуш ~ п? или я торможу?


Там просто есть ещё и stolen bytes, в самом протекторе это выглядит так:

0066BAF3 PUSH EBP
0066BAF4 MOV EBP,ESP
0066BAF6 PUSH -1
...................
0066BECE JMP DWORD PTR DS:[66BED4] ; Pulya.00474F17 // переход к tempOEP

Попасть на этот код можно по hardware бряку на какое-нить там 12ffc0 или 12ffa4, можно и мой скрипт немного доделать... чтобы он на stolen bytes останавливался.

Теперь самое интересное - JMP DWORD PTR DS:[66BED4] , на EP протектора по адр. 66BED4 лежит
17 4F 07 00, тоесть tempOEP без ImageBase и в обратном порядке :)
А пахнет это всё inline патчем, не то слово «пахнет», там «за милю несёт» :))))) тем более, что ни CRC, ни проверки целостности памяти в этом ACProtect нету...
Я уже попробовал сделать inline, всё прекрасно работает - вначале прыгает в header, выполняет там мой код
00400680 40 INC EAX
00400681 48 DEC EAX
00400682 -E9 90480700 JMP 11.00474F17 и прыгает на tempOEP :)

PS получается inline к ACProtect, сделать не сложнее, чем к UPX

ZX :: Да на счет инлайна, я думал сразу, а потом когда полез распаковывать, уже не могу остановится, там импорт из двух частей, и еще какая-то фигня, с простыми процедурами, хочется разобраться как все это работает, я ж скачал прогу не из-за преферанса.
В принципе пока ничего сложного, да и еще ты меня на скрипт подсадил, так что развлечения мне теперь обеспечены.

Mario555 :: ZX пишет:
цитата:
импорт из двух частей


С импортом там всё просто, один переход, и чистая Iat.
0065A39F 7F 31 JG SHORT Pulya.0065A3D2 -- на jmp

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

ZX :: Mario555
Я забабахал етот гр..ый столен код, хош глянуть на скрипт для восстановления этой беды? Большой тебе фенкс


Mario555 :: ZX пишет:
цитата:
хош глянуть на скрипт для восстановления этой беды?


Угу, хочу.
Кста это уже наверно третий способ восстановления будет...
Я например менял начальные значения в циклах, таким образом перенаправляя stolen code в пространство exe.
А Рикардо в своём туторе приводит пример процедуры, которая будет возвращать байты на их «законные» места.

ZX :: bphws 0065a39f,«x»
eob import
run
import:
mov [eip],#EB31#
bphwc 0065a39f
bphws 00654d3e,«x»
eob stolcod
run
stolcod:
mov eax,66e000
bphwc 00654d3e
bphws 00655e1a,«x»
eob killproc
esto
killproc:
mov [eip],#585890909090#
bphwc 00655e1a
ret

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

Теперь у меня сплэш показывает и улетает в неизвестный код.

ZX :: Mario555 пишет:
цитата:
А Рикардо в своём туторе приводит пример процедуры, которая будет возвращать байты на их «законные» места.


Это круто, мне трудно пока это себе представить. Дай ссылку на статью плиз. Кстате скрипт еще и импорт поправляет как ты сказал.

Mario555 :: ZX
Э-э ну а зачем нужен такой скрипт ? Он ведь подходит только для данной проги... Используя фиксированные адреса, которые всё равно надо было находить вручную... А когда их знаешь, то поменять значения быстрее без скрипта.
Да, кста у меня он не работает...

ZX пишет:
цитата:
Дай ссылку на статью плиз.


http://www.crackslatinos.....net/paginas/favorite.htm - здесь ссылки с паролями на ftp cracklatinos.

ZX пишет:
цитата:
Теперь у меня сплэш показывает и улетает в неизвестный код.


Как раз об этом я и говорил выше. Когда поставишь заглушку на функцию проверки, тогда распакованная прога станет запускаться.

Этот ACProtect оказывается довольнотаки часто обновляется. Сейчас последняя версия - 1.22, в ней замут с «начальной» процедурой по типу как в аспр 1.3, тоесть она почти вся находится в протекторе, причем используются метаморфозы, для байтов до первого Call какие-то мутные (ну эти байты можно восстановить и не копаясь в протекторе:)), а для последующих простенькие. Вообщем будет время - займусь этим 1.22.
Кста inline там теперь тоже на халяву не сделаешь (хотя есть у меня одна идея... правда придётся разбираться с расшифровкой, чтобы вставить нужный адрес).
Солод наверно бесится, когда этот протектор видит :) мало того, что название хапнули, так ещё и идеи внаглую п*здят.

ZX :: Mario555 пишет:
цитата:
Да, кста у меня он не работает..


А у тебя 98-е? Вообще я идею пытался тебе показать, а зачем сразу для всех прог один скрипт? Но переделать я его переделаю, это факт, хотя энтузиазма к этому не испытываю.

Mario555 :: ZX
Да не в этом дело... Возможно если что-то подправить, то скрипт и заработает, но ТОЛЬКО с этой прогой. Твой скрипт практически ничего не автоматизирует, т.к. адреса ты искал сам вручную.
Вот например посмотри на мой скрипт, я там использовал бряк на Process32First и т.д. для обхода закрытия Olly, думаешь зачем я это делал ?! ведь мог же просто вписать адрес перехода и всё, но работало бы тоже только с этой прогой.

PS аськи у меня сейчас нет :(

ZX :: Mario555
Хочешь сказать, ты писал скрипт не исследуя проги? И хочешь сказать ОТНОСИТЕЛЬНЫЕ адреса работать не будут? Вообще этот скрипт, который я тут написал, работает со всеми мне известными на данный момент прогами с ACProtect этой версии, но, естественно, при использовании относительных адресов. Я не релизер и не собираюсь этим заниматься, а вот идеи - это другое дело.

ZX :: Кстате, ACProtect 1.23 бета 1 на делфях написан, если кому интересно. :Р
И опять таблица импорта одним байтом корректится, это у них входит в фирменный почерк

Mario555 :: ZX пишет:
цитата:
Хочешь сказать, ты писал скрипт не исследуя проги?


Я его писал для ACProtect.exe, так же он без каких либо изменений работает со всеми, известными мне, прогами запаковаными этим протектором версии 1.09g. Тоесть для работы этого скрипта не нужно ничего в него дополнительно вписывать, просто грузишь прогу в Olly и запускаешь скрипт, и не надо искать адреса и смещения.

ZX пишет:
цитата:
ОТНОСИТЕЛЬНЫЕ адреса


Это ты о чём ? У тебя в скрипте чётко прописаны СТАТИЧЕСКИЕ адреса именно этой проги.

ZX пишет:
цитата:
на данный момент прогами с ACProtect этой версии


А какие ты ещё проги с ним знаешь ? ссылочки plz :)

ZX пишет:
цитата:
Я не релизер


Я тоже :)

ZX пишет:
цитата:
а вот идеи - это другое дело


Какие собственно говоря новые идеи ты применил в скрипте ? Постановка бряка на адрес что ли ? :)

ZX пишет:
цитата:
И опять таблица импорта одним байтом корректится, это у них входит в фирменный почерк


Ничего, они и импорт скоро с аспра скоммуниздят :)

ZX :: Mario555 пишет:
цитата:
чётко прописаны СТАТИЧЕСКИЕ адреса


И хочешь сказать, этот скрипт у тебя на этой проге не пашет? Я его проверял с этими адресами и на 98-х и на 2000-х и на ХР, как не удивительно, он работал. Я потом состряпал, попросили, этот скрипт для другой проги ссылку спрошу, адреса я сделал относительно начала секции протектора, и ту прогу распаковали, о чем мне говорили.
Mario555 пишет:
цитата:
Какие собственно говоря новые идеи ты применил в скрипте ?


Идея как найти стибренный код -
1)увеличиваешь секцию протектора(вручную)
2)правишь процедуру расшифровки и перезаписи энтого кода, только в начале инициализации цыклов, перенаправляя это дело в увеличенную секцию протектора.
Вот собственно и идея, скрипт это так чтоб показать ее работоспособность

ZX :: Mario555
Это в тему о статьях Рикардо, полиглот ты наш.
http://imaxel.no-ip.com/b...rc/article_read.asp?id=16
Ваще конечо супер

Mario555 :: ZX пишет:
цитата:
1)увеличиваешь секцию протектора(вручную)
2)правишь процедуру расшифровки и перезаписи энтого кода, только в начале инициализации цыклов, перенаправляя это дело в увеличенную секцию протектора.


Ну и что ? Я запихивал stolen code внутрь exe на свободное место, по-моему это делать быстрее, т.к. нужно только поменять значения регистра, а у тебя кроме этого ещё секцию увеличивать. Вот если бы не было свободного места, то действительно пришлось бы увеличивать секцию.

ZX пишет:
цитата:
Я потом состряпал, попросили, этот скрипт для другой проги


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

ZX пишет:
цитата:
И хочешь сказать, этот скрипт у тебя на этой проге не пашет?


Я гружу прогу в Olly и запускаю скрипт - он ессно не пашет, т.к. не увеличен размер последней секции. К твоему скрипту мануал надо прилагать :)

ZX пишет:
цитата:
адреса я сделал относительно начала секции протектора


Но этого-то скрипта я не видел ! А видел только тот, который ты выложил здесь... в нём - СТАТИЧЕСКИЕ адреса.

Mario555 :: ZX пишет:
цитата:
Ваще конечо супер


Что это ?!
Я такую хрень читать не могу. Буквы русские, а слова - херня какая-то, такое в трезвом состояние читать нельзя (зато по пьяне наверно прикольно ).
Лучше уж переведённые испанские... Электронный переводчик хоть и касячит много, но с ним прочитать вполне реально.

GL#0M :: болгарско - русский переводчик надобно раздобыть :)

ZX :: Вот такой извратный скриптик, останавливается он не на ЕР, а при попытке убить олю. Дальше можно искать энту ЕР, импорт и стибренный код уже в порядке, если прогу отпустить то после этого импреком можно с нее содрать чистый импорт.

var cbase
mov cbase,eip
var addr

mov addr,cbase
add addr,939f
bphws addr,«x»
eob import
run
import:
mov [eip],#EB31#
bphwc addr
mov addr,cbase
add addr,3d3e
bphws addr,«x»
eob stolcod
run
stolcod:
bphwc addr
mov addr,cbase
mov eax,addr
add eax,1d000
add addr,4e1a
bphws addr,«x»
eob killproc
esto
killproc:
mov [eip],#585890909090#
bphwc addr
ret

Mario555 :: ZX
Ну вот это уже другое дело... :)
Правда косяк есть:

mov eax,addr
add eax,1d000 == !!! нельзя использовать константу, т.к. размер секции протектора в разных прогах разный
add addr,4e1a
bphws addr,«x»

Из ACPR.exe
-----
Memory map, item 24
Address=00597000
Size= 00021000 (135168.)
Owner=ACProtec 00400000
Section=.perplex
Contains=SFX,imports
Type=Imag 01001002
Access=R
Initial access=RWE
----
Так что для получения размера нужно использовать
gmi eip, CODESIZE
mov csize, $RESULT

ZX пишет:
цитата:
если прогу отпустить то после этого импреком можно с нее содрать чистый импорт.


Интересно, почему многие думают, что для того, чтобы Imprec распознал таблицу обязательно нужно отпускать прогу...

Aster!x :: ACProtect юзает переходники вида:
push (RVA xor X)
xor [esp], X
ret

Поэтому чтобы получить чистую IAT нужно заставить ACProtect
вместо этого X юзать 0. Сделать это просто, в последнем ACProtect 1.23
есть такой код создания этих самых переходников:
push ebx
push eax ; ‹-в eax настоящий RVA API
call ...
mov ebx, eax ; ‹-функция вернула то число с которым будет xor’ить RVA API
pop eax ; ‹-в eax у нас опять настоящий RVA
xor eax, ebx ; ‹-xor’им :-)

Нужно чтобы этот call вернул 0, там в конце этой функции даже место удобное
есть чтоб вписать xor eax, eax заместо какой-то двухбайтовой команды(непомню
точно какой).

Потом следующий код протектора пропишет переходники:

mov BYTE [esi], 68h
mov [esi+1], eax ; ‹-теперь здесь будет чистый RVA
mov [esi+5], 00243481h
mov [esi+8], ebx ; ‹-а ebx теперь == 0
mov [esi+0Ch], C3h
После этого ImpRec через дизасм возьмёт всю IAT, хоть стопори прогу, хоть
отпускай, но правильнее всё-таки стопорить.

А вот менять переход для получения чистого импорта я бы не рекомендовал ;-)

ZX :: Mario555 пишет:
цитата:
Так что для получения размера нужно использовать
gmi eip, CODESIZE
mov csize, $RESULT


Вообще, конечно, косяк. Да и у тебя тоже - нужно использовать не CODESIZE, а MODULESIZE, т.к. первый покажет размер секции кода, а секцию протектора он за код не считает. Потом отнять от MODULESIZE+MODULEBASE размер на который мы увеличили секцию протектора $3000, это и будет то место куда мы будем писать, по-моему с ACProtectom 1.09g разобрались, как думаешь?

ZX :: Aster!x
А зачем такие извраты?
Mario555 пишет:
цитата:
С импортом там всё просто, один переход, и чистая Iat.
0065A39F 7F 31 JG SHORT Pulya.0065A3D2 -- на jmp


ZX пишет:
цитата:
И опять таблица импорта одним байтом корректится


Aster!x пишет:
цитата:
А вот менять переход для получения чистого импорта я бы не рекомендовал ;-)


Интересно - почему?

Aster!x :: › А зачем такие извраты?

Исправить два байта - изврат?

› Интересно - почему?

С импортом косяк будет, по крайней мере в ACProtect 1.23 ;-)
Я наблюдал этот косяк, хотя прога, почему-то, при этом нормально
работала :-)

ZX :: Aster!x пишет:
цитата:
Я наблюдал этот косяк


И в чем косяк? Не томи душу признавайся.

Mario555 :: ZX пишет:
цитата:
по-моему с ACProtectom 1.09g разобрались, как думаешь?


Угу, и с 1.10 тоже, причём давно, а на последних двух страницах этого топика просто возились со скриптами :)

Кста а откуда 1.23 ? Я качал пару дней назад, и последней была 1.22.
Её нетрудно пропатчить...
Нужные адреса зашифрованы не симметричным алгоритмом и вдобавок расшифровка впередистоящего Dword зависит от значения последующего, но искомый адрес обычно лежит в начале цикла расшифровки, поэтому считать придётся всего 8~12 байт. В разных прогах циклы раскриптовки разные, так например для самого протектора у меня получилось сделать полностью работающую процедуру обратную закриптовке (всего строчек 10), тоесть там вообще не имеет значения где находится искомый адрес, т.к. написанная процедура без какого либо ручного вмешательства может зашифровывать байты. А вот в проге которую я запаковал алгоритм раскриптовки был другой и там обратная процедура у меня получилась кривенькая, т.к. каждый оборот цикла нужно было подставлять определённую цифру, потому, что я понятия не имею, как можно обратить команду
ADD EAX,CONSTANTA
ведь почти каждый раз происходит переполнение регистра и лишнее отбрасывается... разве что посохранять все эти значения в таблицу...
Но это уже нужно будет в случае если искомый адрес лежит далеко от начала, и соответственно нужно считать дофига байт, а т.к. адрес лежит близко к началу, то и вручную можно поподставлять :)

А насчёт распаковки, так там вроде всё также, как в 1.10, ну кроме краденого куска, который восстановить вроде не сложно, но нудно, и мне что-то лень :) Вот если бы запакованная им шароварка была...

Aster!x пишет:
цитата:
ACProtect 1.23


А что в нём нового ? Байты крадёт так же как v 1.10 или как-нить веселее ?

Aster!x пишет:
цитата:
А вот менять переход для получения чистого импорта я бы не рекомендовал ;-)


Да вроде одно и тоже, хоть переход правь, хоть ноль подставляй, всё равно результат одинаковый получится :)

ZX :: Mario555 пишет:
цитата:
Кста а откуда 1.23 ?


http://www.ultraprotect.com/acpr_std.exe
А скрипты у ольки вещь кульная, я что-то раньше не обращал на них внимания. Большой спасиб за идею. :)))
А вот на поиск краденных байтов у меня уходит много времени, пока :)

Aster!x :: › Кста а откуда 1.23 ? Я качал пару дней назад, и последней была 1.22.

Оф. сайт, я брал версию PRO.

› который восстановить вроде не сложно, но нудно, и мне что-то лень :)

А вроде сложно, по крайней мере покруче чем у АСПра, хотя я смотрел его
не более получаса.

› Да вроде одно и тоже, хоть переход правь, хоть ноль подставляй, всё равно результат одинаковый

Кажется не одно и тоже, я попервой тоже переход поправил и половина переходников,
на импорт, которые jmp [...] сглючило, мне показалось это странным, но всё же..
Хотя прога работала после того как я ее отпустил :-)))
Но вобще-то переходы типа jg лучше не трогать или нужно разбираться с логикой его
работы, именно почему например авторы не использовали что-то попроще типа je,
здесь может быть подвох..

ZX :: Aster!x пишет:
цитата:
Но вобще-то переходы типа jg лучше не трогать или нужно разбираться с логикой его
работы, именно почему например авторы не использовали что-то попроще типа je,
здесь может быть подвох..


Я вот похожим скриптом, 1.23 ковырял все типа восстановилось, отпускаешь прогу работает протектит и т.д, и это уже с единой таблицей импорта.

Mario555 :: Гы... оказывется inline в 1.22 делается проще чем я думал... То, о чём я писал выше (расшифрофка адреса и т.п.) нужно только в случае, когда проверка зарегености идёт до «главного» call ( того который находится на своём законном месте).
А если проверка внутри него то всё патчится точно так же, как и v 1.09g, тоесть переход к «главному» call выглядит так:
006ECF04 -FF25 46CF6E00 JMP DWORD PTR DS:[6ECF46] ; ACProtec.004CC953
по адресу 6ECF46 лежит незашифрованный адрес call’a (ессно без ImageBase). Ставим туда свой адрес и...

Aster!x пишет:
цитата:
по крайней мере покруче чем у АСПра


в аспре всё запрятано в кучах мусорного кода, и к тому же там ещё крадутся первые байты из call’ов, которые входят в код который протектор забрал в себя.

В ACProtect 1.22 код не так сильно замусорен и из call’ов ничего не крадут. Правда почти все push/mov переделаны в несколько команд, по типу так:
push EBP и т.п.

PUSH ECX
MOV ECX, tempAddress
MOV DWORD PTR DS:[ECX],EBP
POP ECX
PUSH DWORD PTR DS:[tempAddress]

Push address - это будет:

PUSH ECX
MOV ECX,Address
MOV DWORD PTR DS:[tempAddress],ECX
POP ECX
PUSH DWORD PTR DS:[tempAddress]

MOV EDX,Address

PUSH Address
POP DWORD PTR DS:[tempAddress]
PUSH EAX
MOV EAX,tempAddress
MOV EDX,DWORD PTR DS:[EAX]
POP EAX

и тому подобное... тоесть всегда используется адрес из секции протектора («tempAddress»), а это сразу бросается в глаза.

Aster!x пишет:
цитата:
которые jmp [...] сглючило, мне показалось это странным


У меня, как и у ZX , ничего не глючило... чистая Iat и правильные jmp [].

DOLTON :: Mario555
ZX
Спасибо, очень познавательный топик, постараюсь всё-таки разобраться с распаковкой этого протектора.

Mario555
Ты говоришь отломал ограничение на количество запусков, если не тяжело выложи распакованный не поломанный exe-шник - хочется попытаться найти серийник или пропатчить самому.

Mario555 :: DOLTON пишет:
цитата:
распакованный не поломанный exe-шник


Это невозможно :) Чтобы распакованный заработал его по-любому нужно сломать, т.к. защита построена на апи протектора.

Mario555 :: Такс... по поводу 1.23:
краденые байты:

004D10EB ›PUSH EBP
004D10EC MOV EBP,ESP
004D10EE SUB ESP,8
004D10F1 PUSH EBX
004D10F2 MOV EAX,Unpacked.004D0ED4
004D10F7 CALL Unpacked.00406EDC
004D10FC MOV EAX,DWORD PTR DS:[4F85E4]
004D1101 MOV EAX,DWORD PTR DS:[EAX]
004D1103 CALL Unpacked.0046261C
004D1108 MOV ECX,DWORD PTR DS:[4F83A0]
004D110E MOV EAX,DWORD PTR DS:[4F85E4]
004D1113 MOV EAX,DWORD PTR DS:[EAX]
004D1115 MOV EDX,DWORD PTR DS:[47FEA4]
004D111B CALL Unpacked.00462634
004D1120 MOV ECX,DWORD PTR DS:[4F82D0]
004D1126 MOV EAX,DWORD PTR DS:[4F85E4]
004D112B MOV EAX,DWORD PTR DS:[EAX]
004D112D MOV EDX,DWORD PTR DS:[47FB14]
004D1133 CALL Unpacked.00462634
004D1138 MOV EAX,DWORD PTR DS:[4F85E4]
004D113D MOV EAX,DWORD PTR DS:[EAX]

тут один байт лишний, какой не знаю :) Просто оказалось, что 004D10EB - это адрес последнего байта таблицы «call eax» (той её части которая используется при закрытии проги), но там можно один переход поправить и обращения к таблице не будет. Или вообще можно этот найденый кусок разместить где-нить в другом месте, а не на его законном.
Всё остальное так же, как и в 1.10 - таже поXOR’реная таблица stolen code и т.п.

PS распакованный протектор, как обычно, матерится и не хочет паковать проги :(

DOLTON :: Mario555 пишет:
цитата:
Это невозможно :)


Обидно.
Mario555
Не пытался найти правильный серийник?
Там защита очень интересная...

ZX :: Mario555 пишет:
цитата:
PS распакованный протектор, как обычно, матерится и не хочет паковать проги :(


Там слишком много данных созданных протектором, которые используются прогой, я пытался их все впихнуть в экзешник, но это изврат, а выковыривать всю эту бяку из экзешника работа неблагодарная - овчинка выделки не стоит(как раз тот случай) :)






   
Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS