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

 eXeL@B —› Вопросы новичков —› Execryptor 2.2.4 - нужна помощь
Посл.ответ Сообщение

Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 26 августа 2007 18:03
· Личное сообщение · #1

Программа (1.50 Mb):
www.kernelpro.com/files/AdvancedVirtualComPort.zip

Запакована EXECryptor.
DIE определил:
Эвристика - EXECryptor 2.2.x-2.3.x
По внешней базе сигнатур(недавно пробегала в форуме) - EXECryptor 2.2.4.

Язык: Microsoft Visual C.

Самые полезные статьи,которые нашел:
1) Статья PE_KILL'а в rar статьях
2)Статья от Haggar "ExeCryptor 2.2.4": www.reversing.be/article.php?story=20061129191447423
3)Статья от Deroko "Unpacking And Dumping ExeCryptor And Coding Loader" arteam.accessroot.com/tutorials.html?fid=136

Все мои попытки найти OEP и расшифровать импорт окончились неудачей.

Вопросов очень много, но буду задавать их понемногу,может некоторые сами пропадут.

Итак,начну с OEP.

Пытался найти OEP найти так,как написано у Haggar "ExeCryptor 2.2.4". Но там,где в статье "вот мы оказались на OEP", я оказываюсь в другом месте.Насколько я понял, я оказался на коде ,вставленном протом, который показывает наг-скрин. Что дальше делать, я не знаю.

Пробовал делать по статье Дероко. OEPFinder(из статьи) говорит, что EIP 40a1e1,stolen bytes 8714. Дальше пишется,что восстановите байты и вы увидите jmp. Аттачусь Олей к процессу, и вижу:
0040A1E1 XCHG DWORD PTR SS:[ESP],EDX
0040A1E4 POP EDX
0040A1E5 JNZ Avcp.0048906A
0040A1EB PUSH Avcp.0048DA0A
0040A1F0 JMP Avcp.00470000
0040A1F5 STOS DWORD PTR ES:[EDI]


И байты на месте, и jmp нигде не видно.

Метод описанный в статье PE_KILL очень не надежный(по моему мнению).Хотя,если будет найден и расшифрован импорт,можно и попробовать поперебирать сигнатуры.Но я думаю это будет очень долго...


Что дальше делать? Может есть еще какие нибудь полезные статьи?



Ранг: 35.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 26 августа 2007 18:36
· Личное сообщение · #2

http://www.exelab.ru/f/action=vthread&forum=1&topic=9276&p age=1
С низу четвертый пост как найти ОЕР, а лучше прочитай весь топик.

0040E916 55 PUSH EBP --> ОЕР
0040E917 8BEC MOV EBP,ESP
0040E919 6A FF PUSH -1
0040E91B 68 E0364100 PUSH Avcp.004136E0
0040E920 68 10E94000 PUSH Avcp.0040E910 ; JMP to msvcrt._except_handler3
0040E925 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
0040E92B 50 PUSH EAX
0040E92C 64:8925 00000000 MOV DWORD PTR FS:[0],ESP
0040E933 83EC 68 SUB ESP,68
0040E936 53 PUSH EBX
0040E937 56 PUSH ESI
0040E938 57 PUSH EDI
0040E939 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
0040E93C 33DB XOR EBX,EBX
0040E93E 895D FC MOV DWORD PTR SS:[EBP-4],EBX
0040E941 6A 02 PUSH 2
0040E943 FF15 A8144100 CALL DWORD PTR DS:[4114A8] ; msvcrt.__set_app_type
0040E949 59 POP ECX
0040E94A 830D 18664100 FF OR DWORD PTR DS:[416618],FFFFFFFF
0040E951 830D 1C664100 FF OR DWORD PTR DS:[41661C],FFFFFFFF
0040E958 FF15 A4144100 CALL DWORD PTR DS:[4114A4] ; msvcrt.__p__fmode
0040E95E 8B0D 0C664100 MOV ECX,DWORD PTR DS:[41660C]



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 27 августа 2007 01:49 · Поправил: tempread
· Личное сообщение · #3

Как восстанавливать TLS на MS VC программах?
У меня сдамленная программа до EP не доходит - выходит с кодом 0. Пробовал нули прописать в TLS(так делает HAGGAR в своих туториалах) - програма вылетает,говоря что EIP=0.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 27 августа 2007 06:35
· Личное сообщение · #4

tempread забыл еще одну самую полезную статью от Nikola про инлайн патч ;)

-----
StarForce и Themida ацтой!





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 27 августа 2007 11:31
· Личное сообщение · #5

И так задача, распаковать сей замечательный продухт (остальное мне делать лениво)....

1. Найти ОЕП можно с помощью скрипта гребаного паффки.

2. Восстановить импорт можно с помощью скрипта ПЕКилла (версия 1.9)

3. Сдампить можно последним ПЕТулсом

4. Прикрутить импорт с помощью ипрека

5. Удалить ТЛС и сделать секции Writeble

После всего этого результат (может на запустится потому как на разных осях не пробовал, если не запустится то нужно отдельно дампить секции говнопрота до инициализации, как это сделать написано kioresk'ом на форуме):
rapidshare.com/files/51563260/Dumped_.rar.html

И отдельно импорт если дамп не запустится:
rapidshare.com/files/51563392/import.rar.html

-----
StarForce и Themida ацтой!





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 27 августа 2007 11:33
· Личное сообщение · #6

Короче все равно легче проинлайнить, чем заниматься гимором с распаковкой. Хотя если получится отрезать секции говнапрота, тогда можно и распаковать

-----
StarForce и Themida ацтой!




Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 27 августа 2007 11:35
· Личное сообщение · #7

tempread пишет:
Как восстанавливать TLS на MS VC программах?


Ни как его там нету! поэтому просто занули, как ты и хотел. Есди не запускается значит:

1) Плохой дамп
2) Не весь импорт восстановил
3) Неправильное OEP ( или не восстановил спертый код... )

Если распакованный вариант Maximus, тебя не устроит - пиши, выложу свой.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 27 августа 2007 11:41
· Личное сообщение · #8

RSI дык нету там спертого кода, все начало целое....

-----
StarForce и Themida ацтой!




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 27 августа 2007 13:38 · Поправил: tempread
· Личное сообщение · #9

Maximus
Взял свой дамп,Ваш импорт - дамп запустился.

Как Вы восстанавливали импорт?
Почему у Вас такой импорт маленький?

Я взял размер импорта как у вас, восстановил его плагином.
Но там же(имеется ввиду,в пямяти в таблице импорта) еще много чего то есть,причем плагин его в функции превращает. Или плагин превращает в фунции все,что ему не подставишь?

Я брал за импорт: RVA start=11000
RVA end = 151c0(где то так)

У меня,при запуске скрипта ExeCryptor.2.x.IAT.Rebuilder-PE_Kill.txt,несколько сотен записей восстанавливается,потом появляется MessageBox о том,что память по адресу FFFFFFFF не читаема(при нажатии на OK, опять появляется это окно).


1. Найти ОЕП можно с помощью скрипта гребаного паффки.
Имеется ввиду скрипт ExecryptStoepMSVCedit.txt ?




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 27 августа 2007 14:34
· Личное сообщение · #10

>Как Вы восстанавливали импорт?
Взял скрипт пекила версию 1.9, вписал туда начало импорта и конец (и ту и другую цифру посмотрел в импреке, тупа нажав кнопку IATAutoSearch, хотя и визульно видно, что вроде определено правильно)

>Почему у Вас такой импорт маленький?
Дык это, импорт то вроде не маленький.

Хотя может я и погорячился с импортом , но наверное автор ImpReca лучше меня разбирается в импорте.

>память по адресу FFFFFFFF
Ну это понятно откуда, там в секции импорта есть ячейки со значением -1

>Имеется ввиду скрипт ExecryptStoepMSVCedit.txt ?
У меня он называется "EXECRIPTOR VMOEPfinder.txt"
Запустил скрипт стоя на TLS, ввел все данные, на 5-ю или 6-ю итерацию скрипт мне нашел ОЕП (как ОЕП приблизительно должен выглядеть посмотрел на другой С проге)...

-----
StarForce и Themida ацтой!




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 27 августа 2007 14:54
· Личное сообщение · #11

Вот так выглядит окончание таблицы импорта(если взять цифры Maximus'а):
00411538 77D51ADF user32.AppendMenuA
0041153C 00000000
00411540 71A9428A WS2_32.send
00411544 71A9406A WS2_32.connect
00411548 71A92B66 WS2_32.ntohs
0041154C 71A94FD4 WS2_32.gethostbyname
00411550 71A92BF4 WS2_32.inet_addr
00411554 71A93B91 WS2_32.socket
00411558 71A99639 WS2_32.closesocket
0041155C 71AB2E70 WSOCK32.recv ====================> Окончание импорта
00411560 00000000
00411564 00000000
00411568 004014B0 Avcp.004014B0
0041156C 00411570 Avcp.00411570
00411570 00000000
00411574 00000000
00411578 00000000
0041157C 00000000
00411580 00000000
00411584 00000000
00411588 0040E256 JMP to MFC42.#3597
0041158C 004010C0 Avcp.004010C0
00411590 004012D0 Avcp.004012D0
00411594 004012E0 Avcp.004012E0
00411598 004012D0 Avcp.004012D0


Так совпало,что в окончании не попорченный импорт.

По каким признакам можно определить окончание импорта? По 16 нулям?



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 27 августа 2007 15:17 · Поправил: tempread
· Личное сообщение · #12

Не могу найти EXECRIPTOR VMOEPfinder.txt Где то видел на форуме упоминание о нем, но сейчас даже это не могу найти. Нельзя ли его выложить? Очень уж хочется посмотреть на метод поиска OEP.

P.S. Уже не надо,нашел тему




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 27 августа 2007 15:55
· Личное сообщение · #13

tempread
методика стара как мир, бряк на esp-4...

Скриптос + коментарии паффки
http://www.exelab.ru/f/action=vthread&forum=1&topic=9470&p age=0

Да и ваще, хочешь узнать побольше про говнапрот, жмакай сюда
http://www.exelab.ru/f/action=userinfo&user=293

-----
StarForce и Themida ацтой!




Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 27 августа 2007 22:23 · Поправил: RSI
· Личное сообщение · #14

Maximus пишет:
дык нету там спертого кода, все начало целое....


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

tempread пишет:
По каким признакам можно определить окончание импорта?


Обычно должно быть 8 нулевых байт ( 2 DWORD ), на этом и будет конец IAT ( кроме некоторых борландовских прог).

00411540 >8A 42 AB 71 6A 40 AB 71 66 2B AB 71 D4 4F AB 71 ЉB«qj@«qf+«qФO«q
00411550 >F4 2B AB 71 91 3B AB 71 39 96 AB 71 70 2E AD 71 ф+«q‘;«q9–«qp.­q
00411560 00 00 00 00 00 00 00 00 B0 14 40 00 70 15 41 00 ........°@.pA.
00411570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00411580 00 00 00 00 00 00 00 00 56 E2 40 00 C0 10 40 00 ........Vв@.А@.

т.е. 41155С это последняя ячейка из IAT.



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 28 августа 2007 00:53 · Поправил: tempread
· Личное сообщение · #15

Начал изучать распакованную программу. Пробовал с серийником что-нибудь сделать,хотя бы пропатчить - не смог, для меня слишком код запутанный. Тогда решил пропатчить регистрационную информацию - количество лицензий и количество портов, ну и что бы прога думала ,что она лицензионная. Вроде сделал, в about пишется то,что нужно, но по факту ограничения остались. Начал смотреь, откуда берутся количество лицензий и портов. Оказалось что прога делает CreateFileW, а потом ReadFile, и через такой pipe(вроде так) берет эту информацию у сервиса "KernelPro Advanced Virtual COM Port service". Т.е. нужно этот сервис ковырять. А сервис оказался тоже накрыт ExeCryptor'ом. Но я ж уже с большим багажом знаний! И за 7(!) минут без единой запинки распаковал файл! Причем там и краденные байты были, целых 15 байт. Но они востановились элементарно,посмотрел какое начало у уже распакованной первой программы(предположил,что версии компиляторов должны быть одинаковы),недостающие цыфры подсмотрел в стеке на temp OEP. Краденные байты леглы ровненько от jmp(на код прячущий украденные байты) до начала не украденных байт. Импорт восстановил скриптом от PE_KILL'а. OEP находил устанавливая поочередно бряк на запись то на секцию данных, то на секцию кода.

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

Еще возник вопрос по поводу "сделать секции Writeble" как написал Maximus. Я этого не делал,вроде все работает. Когда нужно такое делать, и какие именно секции нужно делать writeble?
P.S. С красивостями(делать импорт в ту же секцию,где он был, отрезание секций прота, забивание нулями секций) еще не разбирался, и так от количества информации голова пухнет Но на досуге и этим займусь...




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 28 августа 2007 06:43
· Личное сообщение · #16

>сделать секции Writeble
Это я делал PE_Tools в характеристиках секции, у меня без этого прога падала. Но если работает, тогда хрен с ними, с секциями.

Если в сервисе рега крипторовская тогда все ломается легко. Но я так понимаю там вроде рега своя.

-----
StarForce и Themida ацтой!





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

Создано: 28 августа 2007 09:45
· Личное сообщение · #17

Maximus пишет:
>Имеется ввиду скрипт ExecryptStoepMSVCedit.txt ?
У меня он называется "EXECRIPTOR VMOEPfinder.txt"

Мда отстал я от жизни что за скрипт? Все ссыли на файлопомойки битые. Покажите а?

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




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 28 августа 2007 10:35 · Поправил: tempread
· Личное сообщение · #18

PE_Kill
Скрипты очень простые.

Maximus в этой теме уже давал ссылку,повторяю(скрипт внутри архива с видео-тутором):

EXECRIPTOR VMOEPfinder.txt - http://exelab.ru/f/action=vthread&forum=1&topic=9470

OEP_MSVC.rar ExecryptStoepMSVC.txt - Вот тут
http://exelab.ru/F/action=vthread&forum=1&topic=9276&page= 3
жива вот эта ссылка:
http://rapidshare.com/files/43525100/OEP_MSVC.rar

В этой же теме выложена подправленная версия скрипта:
http://www.exelab.ru/f/files/68d1_18.07.2007_CRACKLAB.rU.tgz




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

Создано: 29 августа 2007 14:24
· Личное сообщение · #19

tempread,

Еще возник вопрос по поводу "сделать секции Writeble" как написал Maximus. Я этого не делал,вроде все работает. Когда нужно такое делать, и какие именно секции нужно делать writeble?

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




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 29 августа 2007 15:56
· Личное сообщение · #20

О, kioresk, помоги челу с этой прогой вот в этой теме
http://www.exelab.ru/f/action=vthread&forum=1&topic=9769

-----
StarForce и Themida ацтой!




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 29 августа 2007 17:11
· Личное сообщение · #21

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



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 30 августа 2007 11:07
· Личное сообщение · #22

С распакованным сервисом возникли проблемы,описанные тут:
http://www.exelab.ru/f/action=vthread&forum=1&topic=9769&p age=-1


 eXeL@B —› Вопросы новичков —› Execryptor 2.2.4 - нужна помощь
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати