Сейчас на форуме: Rio, YDS (+10 невидимых)

 eXeL@B —› Основной форум —› снова arcalands
Посл.ответ Сообщение

Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 07 апреля 2006 16:12
· Личное сообщение · #1

Прога запакована.
Дамп по типу
1. стоп на OEP, 2. дамп, 3. восстановление импорта

не работает.

Если кому интересно, посмотрите please, что за защита и с чем ее едят

Arcalands Trial 1.2 (7.8 мб)
www.soft32.com/download_122271.html

Недавно уже спрашивал,но как-то никто не отреагировал несмотря на то, что ссылку на прогу я дал.
Поэтому тему закрыл.
Если поступил не по правилам форума, казнить нельзя помиловать.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 08 апреля 2006 13:26
· Личное сообщение · #2

Для чего программа-то?

-----
Недостаточно только получить знания:надо найти им приложение





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

Создано: 08 апреля 2006 13:53
· Личное сообщение · #3

И чем запакована?

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





Ранг: 108.4 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 08 апреля 2006 18:52
· Личное сообщение · #4

Microsoft Visual C++ v6.0 (MFC)
Хотя там может что то и намудрили.

-----
Есть вопросы ко мне? В личку!




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 10 апреля 2006 01:09
· Личное сообщение · #5

voodoo69 пишет:
Если поступил не по правилам форума, казнить нельзя помиловать.

Насколько помню из мультика (давно было), нужно правильно поставить запятую.
Предлагаю так: казнить, нельзя помиловать.




Ранг: 116.9 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 10 апреля 2006 01:24
· Личное сообщение · #6

Rascal пишет:
Для чего программа-то?


хы, игрушка-арканоид

-----
Nothing just happens. You choose it to happen.




Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 10 апреля 2006 04:20
· Личное сообщение · #7

2 YoriCH

Это не Microsoft Visual C++ v6.0 (MFC). Запустите в Olly и сразу поймете.
Пропустить через PEID я бы и сам догадался, прежде чем спрашивать на форуме

2 crc1

Спасибо за доброту А на вопрос, который я задал ответить, по видимому, не можете? Тогда вас нужно казнить вместе со мной чтобы по-честному. Ну где вы, крекеры, ауу...

Если сдампить, и запустить дамп в Olly, и одновременно запустить оригинал в Olly (и прогнать до OEP), то увидите, что в карте памяти оригинала есть секции которых нет в памяти дампа. Дамп обращается к ним и вылетает. Такое у меня получилось заключение. Хотя могу и ошибаться.
Меня интересует не взломать, а понять, какая стоит защита (какой паковщик). А дальше можно хоть как-то двигаться. PEID тут не поможет.




Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 10 апреля 2006 07:36 · Поправил: NEOPEX
· Личное сообщение · #8

voodoo69 пишет:
что за защита


_хорошие_ сигнатуры говорят что это MoleBox v2.x -> MoleStudio.com ну и RDG Packer Detector v0.5.8 соглашается и говорит MoleBox Detecciniyn Heurhstrica - типа тоже молебокс

ну а насчёт
voodoo69 пишет:
с чем ее едят

посмотрю попозже, т.к. самому интересно стало что это за мегазащита, которая так оригинально называет секции

P.S.voodoo69 пишет:
PEID тут не поможет

ПеИд жифф!

-----
Люблю повеселиться, особенно пожрать





Ранг: 116.9 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 10 апреля 2006 12:35
· Личное сообщение · #9

NEOPEX пишет:
которая так оригинально называет секции


а что там за названия?

-----
Nothing just happens. You choose it to happen.





Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 10 апреля 2006 13:15 · Поправил: NEOPEX
· Личное сообщение · #10

Viktoro пишет:
а что там за названия?


Ну это я в ироническом смысле сказал, названия там - числа, идущие от нуля по возрастанию, т.е. первая секция - 0, ну и дальше вплоть до, к примеру, десяти (как в этой проге), причем EP всегда находится в предпредпоследней секции, т.е. в этой проге в секции 8. Это я просто к тому что можно было и поинтереснее придумать, например есть такое слово UPX

EDITED : Вот при распаковке наткнулся на прикольную строчку - "C:\Projects\MoleStudio\MoleBox\molebox2\bootup\mbx_DLL.cpp" - так что вопрос с детектом отпал, остался вопрос с раcпаковкой...

-----
Люблю повеселиться, особенно пожрать




Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 11 апреля 2006 06:11
· Личное сообщение · #11

www.reversing.be/article.php?story=20051017235819353



Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 11 апреля 2006 06:15
· Личное сообщение · #12

2 NEOPEX

Нда. Во-первых, спасибо за molebox! Теперь будем знать!

Я вроде тоже качал сигнатуры хорошие для Peid, но почему же не срабатывает? Я думал просто файл надо заменить в рабочей папке PEID, а может еще и настраивать надо? Если не трудно в двух словах прошу намекнуть.




Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 11 апреля 2006 15:19
· Личное сообщение · #13

Нет, настраивать ничего не надо, пихаешь в userdb.txt и всё уже работает (т.е. External Scan) - просто видать у тебя они не такие хорошие, ну ничего - я скоро свою базу опубликую

Интересно другое - ты распаковал или пока ещё нет?

-----
Люблю повеселиться, особенно пожрать





Ранг: 108.4 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 12 апреля 2006 02:10
· Личное сообщение · #14

voodoo69
А по какому адресу, и что за секции?

-----
Есть вопросы ко мне? В личку!




Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 12 апреля 2006 05:11
· Личное сообщение · #15

Пока не распаковал.
Поискал туториалы про малбокс...В том числе все, что было по нему на этом форуме. По ним не могу распаковать, т.к. этот малбокс немного не похож на те, что в туториалах...
Чем отличается:

1) Хотя с нахождением OEP в arcalands проблемы нет, он находится не совсем так как указано в статьях.

004FC3D0 61 POPAD
004FC3D1 58 POP EAX
004FC3D2 FFD0 CALL EAX <---- причем здесь переход не сразу на OEP
004FC3D4 E8 A0B20000 CALL ArcaLand.00507679
004FC3D9 CC INT3
004FC3DA CC INT3

а вовсе не как в статье:

010642A0 POPAD
010642A1 JMP EAX --- OEP!

Ну с OEP у меня получилось 50823B.
Переход на него идет отсюда

0048E562 -FF25 E8D24900 JMP DWORD PTR DS:[49D2E8] ; ArcaLand.0050823B
0048E568 -FF25 ECD24900 JMP DWORD PTR DS:[49D2EC] ; kernel32.GetOEMCP
0048E56E -FF25 F0D24900 JMP DWORD PTR DS:[49D2F0] ; ArcaLand.00508325
0048E574 -FF25 F4D24900 JMP DWORD PTR DS:[49D2F4] ; kernel32.GetProcessHeap
0048E57A -FF25 F8D24900 JMP DWORD PTR DS:[49D2F8] ; kernel32.GetStartupInfoA
0048E580 -FF25 FCD24900 JMP DWORD PTR DS:[49D2FC] ; kernel32.GetStdHandle

2) Далее в статье говорится, что импорт надо восстанавливать, если Olly не подписал, что за функция вызывается.
....
01008ACE CALL DWORD PTR DS:[10011D0] ; [GetThreadLocale
01008AD4 XOR EBX,EBX
01008AD6 PUSH EBX
01008AD7 CALL DWORD PTR DS:[10011D4] (вот здесь например)

В arcalands такого вроде нету.

3) скрипт к малбоксу для Olly, который восстанавливает импорт и находит OEP не работает!

Imprec восстановит не весь импорт. Как вручную восстановить импорт - я не знаю. Если кто-то может здесь помочь, очень буду рад.

Ну и подозреваю, что из памяти надо будет выдрать dll-ки или еще чего. Это как раз те самые секции которых нет в памяти при запуске дампа. Верный признак малбокса.



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 12 апреля 2006 06:22
· Личное сообщение · #16

voodoo69
Так ты выложи минимально рабочий набор, а то 8мегов жирно качать!

-----
Подписи - ЗЛО! Нужно убирать!





Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 12 апреля 2006 14:14
· Личное сообщение · #17

voodoo69 пишет:
не сразу на OEP


Сразу! я тоже долго с этим мучался, но оказалось что это просто в Borland C++ 2002 OEP такое странное

Вечерком выложу способ распаковки...

-----
Люблю повеселиться, особенно пожрать





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

Создано: 12 апреля 2006 14:50
· Личное сообщение · #18

У меня после рапаковки (юзал скрипты) файлики не запускаются =(

-----
Don_t hate the cracker - hate the code.





Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 12 апреля 2006 19:15 · Поправил: NEOPEX
· Личное сообщение · #19

Yep! ацкий кролик сделал это

В принципе ничего особо сложного там нет, защита импорта (а это вообще единственная защита в кротокоробке) сильно смахивает на армадилловскую

1. Запускаем прогу (в полноэкранных приложениях типа al.exe надо будет в нужный момент нажать F12)

2. Идем в секцию в которой должен быть импорт, причем то что говорит сама Оля, а она скорее всего напишет рядом с какой-нибудь секцией imports, нас совершенно не волнует У меня во всех exeшниках это была секция с именем 4, так что наверно это всегда так

3. Выбираем любой адрес API функции (т.е. последний байт в дворде = 77) и ставим на него бряк из контекстного меню (Hardware breakpoint on write - размер любой)

4. Перезагружаем прогу, запускаем и ждем пока наш бряк не сработает, причем место будет выглядет примерно так :


PUSH EAX
CALL DWORD PTR DS:[50E4C8] ; kernel32.GetProcAddress
MOV ECX,DWORD PTR SS:[EBP-1C]
MOV DWORD PTR DS:[ECX],EAX
JMP SHORT ArcaLand.00502DF4 ; <- Мы здесь
MOV EDX,DWORD PTR SS:[EBP-C]
MOV EAX,DWORD PTR DS:[EDX]
AND EAX,0FFFF
MOV DWORD PTR SS:[EBP-2C],EAX
MOV ECX,DWORD PTR SS:[EBP-2C]
PUSH ECX
MOV EDX,DWORD PTR SS:[EBP-14]
PUSH EDX
CALL DWORD PTR DS:[50E4C8] ; kernel32.GetProcAddress
MOV DWORD PTR SS:[EBP-28],EAX
CMP DWORD PTR SS:[EBP-28],0
JE SHORT ArcaLand.00502DF4
MOV EAX,DWORD PTR SS:[EBP-1C]
MOV ECX,DWORD PTR SS:[EBP-28]
MOV DWORD PTR DS:[EAX],ECX
MOV EDX,DWORD PTR SS:[EBP-10]
AND EDX,0FF
TEST EDX,EDX
JE SHORT ArcaLand.00502E18 ; <- Magic juuump!

Если место выглядит не так - ещё раз жмём F9...

5. Удаляем наш старый бряк из Олькиного меню (Debug -> Hardware breakpoints), и ставим бряк на магическом джампе опять таки из контекстного меню (Hardware breakpoint on execution)

6. Перезапускаем прогу, ждем пока бряк не сработает, затем так же убираем его и изменяем условный джамп на безусловный (JE -> JMP) - например это можно сделать выбрав в контекстном меню Assemble

7. Ищем последовательность команд (в контекстном меню Search for -> All sequences)

POP EAX
CALL EAX

Ставим обычный бряк на CALL и запускаем прогу...

8. После того как бряк сработал нажимаем F7 и мы на OEP c восстановленным импортом

9. Дампим (OllyDump как всегда справляется отлично) и восстанавливаем импорт ImpREC'ом...

Единственная тонкость - импрек почему-то не всегда верно определяет начало импорта, поэтому лучше ручками ввести :
RVA = начало нашей (четвёртой) секции с импортом
Size = можно указать 3000, ну а можно не мелочится и сразу указать весь размер секции, т.е. конец минус начало

Естественно найдется не одна тысяча функций, но можно даже не дизасмить а сразу удалить лишнее (можно и Delete thunk(s))

Ну вот и всё - я распаковал пока только ArcaLands.exe но думаю al.exe распаковывается аналогично...

насчет ArcaLands.exe :
Magic Jump = 00502DFF
OEP = 00401384
Импорт в аттаче...

voodoo69 пишет:
Ну и подозреваю, что из памяти надо будет выдрать dll-ки или еще чего.


В том хаггаровском туторе, на который ты давал ссылку, сказано, что если к exeшнику приделаны dllки, то импрек при запуске покажет что прога подгружает модуль с названием типа MBX@1DC@7C14B0.### - ну а тут такого нет ни в одном из двух exeшников...

75af_12.04.2006_CRACKLAB.rU.tgz

-----
Люблю повеселиться, особенно пожрать





Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 12 апреля 2006 19:22
· Личное сообщение · #20

mysterio пишет:
юзал скрипты


Камрад, если тебе не трудно, приаттачь скрипт

В обмен аттачу те, которые нашёл у себя на винте - естественно ни один не работает

cedc_12.04.2006_CRACKLAB.rU.tgz

-----
Люблю повеселиться, особенно пожрать





Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 12 апреля 2006 23:19
· Личное сообщение · #21

Сразу два добавления к тому бреду который был выше :

1. Секция с импортом отнюдь не всегда бывает с именем 4, так что единственный выход найти её - смотреть конец всех секций - у верной в конце будет куча названий API функций...

2. al.exe так легко не поддается и после описанных мной действий всё равно не запускается - будем копать глууубже и дааальше

-----
Люблю повеселиться, особенно пожрать




Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 13 апреля 2006 10:21
· Личное сообщение · #22

понял все свои ошибки и распаковал по статье Хаггара и советам NEOPEX.

ну с al.exe тоже самое, черный экран и вместо картинки бац! вылетает.
что это может быть? думаешь какая-то проверка в середине? или просто сбой от неполной распаковки?

вообще странная система, arcalands.exe вроде как больше по размеру, но является всего лишь оболочкой?
а маленькая al.exe - это сама игра...

если al.exe вылетает то, как отловить этот exception в коде? я так понимаю там надо на какую-то APIшку ставить бряк? научите плиз!



Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 13 апреля 2006 11:35
· Личное сообщение · #23

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



Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 13 апреля 2006 13:53
· Личное сообщение · #24

Обновление.Задолбала меня эта al.exe конкретно

Начал смотреть почему вылетает. Оказалось, что в опред. момент во время загрузки рисунков в памяти не находит нужное значение и вылетает с обращением к нулевому адресу.
Посмотрел в коде место, где это значение кладется в этот адрес памяти. Оказалось, что в
дампе эта ветка кода не получает управления, перепрыгивается. Еще потрассировав увидел,
что все из-за какой-то внутренней функции call, которая в оригинале на второй раз дает 1
в eax, а в дампе никогда не дает 1. Решил протрассировать этот call в файл...ТЕперь сижу
с двумя файлами по 500кб как дурак и не знаю, что дальше делать.
Скорее всего так и буду методом тыка вверх подниматься...
Блин, ну че ж она не запускается то!




Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 13 апреля 2006 21:07
· Личное сообщение · #25

voodoo69 пишет:
Блин, ну че ж она не запускается то!


С вероятностью 99% в сам файл никаких других файлов не вставлялось, и по-моему дело в том, что почему-то после распаковки неверно распаковывается файл arcalands.pak - а вот почему - это ещё надо узнать...

-----
Люблю повеселиться, особенно пожрать





Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 14 апреля 2006 00:28
· Личное сообщение · #26

NEOPEX пишет:
Камрад, если тебе не трудно, приаттачь скрипт


Камрад дал скрипты мне, а я аттачу их для всех желающих

0dac_14.04.2006_CRACKLAB.rU.tgz - MoleBox.v2.x.very.unfuckable.scripts.rar

-----
Люблю повеселиться, особенно пожрать




Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 14 апреля 2006 12:53
· Личное сообщение · #27

Сегодня смотрел, где происходит обращени
е к файлу arcalands.dat. Самое раннее это происходит в коде распаковщика. Можно найти, если отслеживать 4508B4 в памяти по hardware breakpoint on access byte. Далее несколько раз F9 пока не будет видна надпись arcalands.dat, а вокруг ничего.ПОсле этого меняем бряк на адрес 8CB070 - тоже hd breakpoint on access byte. И потом можно будет выйти на последовательность команд createfile-setfilepointer-readfile, т.к по адресу 8CB070 будет полный путь к файлу arcalands.dat.

Из файла малбокс берет несколько значений dword по определенным смещениям. И разок берет какой то
блок данных размером h8098. Это всё, по-видимому, надо распаковщику для работы. Также на этом
этапе малбокс понемногу распаковывает сам себя, чтобы продолжить выполнение. Больше толком ничего
сказать не могу

Дело в том, что малбокс в ходе работы своей создает определенные секции памяти. Мне все-таки
кажется, что в них есть какая-то важная информация, которой не хватает для запуска дампа.
Может можно их как-нибудь включить в дамп? Например размер ему побольше сделать...

Насколько я понял, в самой программе обращения к файлу arcalands.dat не возникает (по крайней
мере до того как дамп вылетает, это легко проследить по createfile). Значит либо все ресурсы уже
подгружены в память малбоксом(!), либо ошибка в дампе происходит ДО того, как ресурсы будут
реально загружаться из arcalands.dat, пока мне не ясно.

Вообще довольно удивляет такое как бы слияние пакера и программы. Нормальный малбокс должен по
идее в память грузить ресурсы, а брать их из экзешника. А здесь, из dat файла.



Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 19 апреля 2006 13:38
· Личное сообщение · #28

вот тут на форуме писали, что мол распаковать малбокс особого труда не составляет. это так, потому что уже туториалы есть, но нет ни одной статьи о том, как заставить работать распакованную прогу, если все данные (картинки, звуки) запакованы были малбоксом в отдельный файл. в данном случае arcalands.dat

для того чтобы распакованный al.exe заработал, нужно все файлы из arcalands.pak вытащить в нормальном виде! во время работы программы функции типа createfile, readfile перехватываются малбоксом чтобы доставать нужные файлы из arcalands.dat

парочку файлов (картинок) мне удалось достать. положив их просто в папку images и проверив работу проги , я понял, что нужно распаковать все файлы и тогда она запустится без проблем. я не спец в этих делах, но мне кажется, что без инлайн патча тут не обойтись. то есть в момент когда отработала readfile и очередной файл прочитан в память, делаем createfile "наш файл", writefile , closehandle, затем возвращаем управление проге. сейчас пытаюсь это реализовать, но т.к. опыта на асме мало, очень все медленно...

проблема еще в том, что не знаю как с именами поступить. Если подставлять filepath в наш createfile копируя его из текущих данных проги (чтобы сразу в итоге получать распакованный файл с правильным названием), то может не получиться, т.к прога уже сделала createfile с этим filepath,

С парой сотен файлов вручную долбаться неохота, а т.к. это игрушка, то пока до опред уровня не дойдешь, опред файлы не грузятся из arcalands.pak, а нам надо все и сразу. буду смотреть можно ли автоматизировать подстановку filepath из полного списка файлов arcalands.pak который находится в памяти...

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

1. перехватываем createfile, по имени файла создаем свой файл с таким же именем.
2. перехватываем readfile, данные пишем в свой файл, затем возвращаем управление.
3. закрываем свой файл, ждем следующий createfile.

может быть это уже реализовано в каком либо виде???



Ранг: 18.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 20 апреля 2006 14:19
· Личное сообщение · #29

Все получилось. Все файлы из arcalands.pak достал и распакованный ранее al.exe запускается и работает без проблем.
аттачу листинг процедуры на ассемблере, и НЕраспакованный al.exe с инлайн патчем. Запускать нужно только в олли, т.к. это для исследования. Там перед переходом на OEP я поставил jmp на свой код. Чтобы брякнуться в нужном месте, ставьте бряк в олли не на call eax а повыше, например на mov....eax..
У меня в коде в самом конце будет jmp eip заморозка, так что просто так прогу запускать не надо, или потом идите убивать вручную.

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

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

8600_20.04.2006_CRACKLAB.rU.tgz - Al-exe.rar




Ранг: 89.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 20 апреля 2006 15:31
· Личное сообщение · #30

voodoo69 пишет:
Все получилось.


Салют чемпионам!

-----
Люблю повеселиться, особенно пожрать



 eXeL@B —› Основной форум —› снова arcalands
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати