Сейчас на форуме: Rio (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Помогите раскурочить архив. |
Посл.ответ | Сообщение |
|
Создано: 13 мая 2008 19:49 · Личное сообщение · #1 Приветствую всех, маэстро дизассемблера! ![]() У меня проблема. Я хочу вытащить пароль из одной проги. Она скачивает из интернета файл, который на самом деле просто зашифрованный rar. В проге используется библиотека unrar.dll Я скачал из сети эту библиотеку в сорсах. Там экспортируются функции: HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData); HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData); int PASCAL RARCloseArchive(HANDLE hArcData); int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData); int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData); int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName); int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName); void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LONG UserData); void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc); void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc); void PASCAL RARSetPassword(HANDLE hArcData,char *Password); int PASCAL RARGetDllVersion(); Посмотрел в Dependency Walker'е и выяснилось, что прога использует только эти: RARSetCallback RARProcessFile RARReadHeader RARCloseArchive RAROpenArchive Создал базу для апишпиона kerberos из этих функций. Аттачусь к процессу проги. Потом запускаю скачивание файла из интернета. Выключаю прогу, но лог шпиона пустой ![]() Прога была зашифрована ASP'ом(вот параноики). Я запустил Quick Unpack и распаковал ее автоматически. После этого она нормально запускается, но ИДА пишет, что таблица импорта повреждена. Написано на дельфи 6 или 7. Прога - прайслист интернет магазина. Я нашел, как из нее взять инфу(она ее сама распаковывает в папку). Но мне очень интересно, как можно из нее пароль выцыганить. Сто процентов можно, он ведь там есть. Ссылка на прогу: www.jeepshop.ru/price/JeepPrice_Setup.exe Кто знает, посоветуйте. ![]() |
|
Создано: 13 мая 2008 21:00 · Личное сообщение · #2 |
|
Создано: 13 мая 2008 21:45 · Поправил: Milfhunter · Личное сообщение · #3 Нашел что пароль посылается, как параметр для функции RARSetCallback(hArcData, CallBackProc, (LONG)sPass); В ИДЕ это выглядит так: .text:004A4578 push eax .text:004A4579 push offset CallBackProc .text:004A457E push ebx .text:004A457F call RARSetCallback и стек: 0012B924 dd 0B922A4h 0012B928 dd 4A44B8h ; CallBackProc 0012B92C dd 12B930h ; Stack[00000AB0]:var_4268 Теперь, пожалуйста, объясните убогому, как из этих переменных пароль узнать? Я тыкал мышкой в стеке, но в одной debug035:00B922A4 db 0 а в другой 0012B930 var_4268 dd 0 0012B934 var_4264 db 90h ; DATA XREF: Stack[00000AB0]:var_1Co 0012B935 db 0B6h ,91h ,7Ch ; ¦Ñ| 0012B938 dd 0FFFFFFFFh вроде ноль. Что это такое? ![]() |
|
Создано: 16 мая 2008 10:23 · Личное сообщение · #4 |
|
Создано: 16 мая 2008 11:42 · Поправил: Stack · Личное сообщение · #5 |
|
Создано: 16 мая 2008 13:38 · Личное сообщение · #6 |
|
Создано: 16 мая 2008 15:42 · Поправил: Stack · Личное сообщение · #7 |
|
Создано: 16 мая 2008 16:09 · Поправил: Stack · Личное сообщение · #8 Состояние: Готов 100 % Вес: 112 кб Содержание: Source - исходники на delphi Binary - скомпиленая dll - 25 кб UnrarDLL_v371 - unrar.dll v 3.71 на всякий пожарный Способ применения: Распаковать в папку с прогой. В папку rarlib поместить unrar.dll. PassRiper.dll переименовать в unrar.dll. Пароль будет сохранен в Password.txt. http://rapidshare.com/files/115341472/RAR_pass_ripper.rar http://slil.ru/25797019 http://link_deleted_by_forum_engine/files/5394164]http://link_deleted_by_forum_engine/files/53 94164 Все замечания и предложения сюда http://exelab.ru/f/action=vthread&forum=3&topic=11889 ----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 ![]() |
|
Создано: 17 мая 2008 11:18 · Личное сообщение · #9 |
|
Создано: 17 мая 2008 16:40 · Поправил: Stack · Личное сообщение · #10 |
|
Создано: 17 мая 2008 21:10 · Личное сообщение · #11 Stack пишет: Milfhunter пишет: Нашел что пароль посылается, как параметр для функции RARSetCallback(hArcData, CallBackProc, (LONG)sPass); Ты не прав товарищ. посмотри исходник моего рипера паролей и узнаешь почему. Я должен был внимательно посмотреть тсходники либы. А вместо этого посмотрел в сорсы кого-то, кто использовал ее. Пароль в CallbackProc, насколько я понимаю. Спасибо за помощь, попытаюсь написать то же самое на Си. Чтоб понятнее было. Никто не знает, почему гцц компилятор, когда библиотеку создает, присваивает именам функций названия типа ИМЯФУНКЦИИ@ДЛИНА_ПАРАМЕТРОВ? То есть, например, RARSetCallback@12. Из-за этого у меня функции не находит. Я прочитал, что это вроде отладочная информация, но как ее убрать в опциях не написано. Isaev пишет: Вот именно в этой проге "JeepPrice" у меня не сработало Stack пишет: У меня тоже в одной вылетало скорее всего проверяеться чевото. или версия библы не та. Да, у меня тоже не работает. Вот подстава... З.Ы. Просьба к модераторам: удалите тему, пожалуйста. ![]() |
|
Создано: 17 мая 2008 22:09 · Личное сообщение · #12 |
|
Создано: 17 мая 2008 23:40 · Личное сообщение · #13 это называется Секрет Полишинеля http://ru.wikipedia.org/wiki/Секрет_Полишинеля ;) строка с паролем лежит открытым текстом. Даже не нужно запускать программу, т.к. в RARSetCallback передаётся адрес CallbackProc (004A44B8), а Callback функция обрабатывает сообщение UCM_NEEDPASSWORD и копирует пароль. P.S. ФСБ и так есть чем заняться ----- EnJoy! ![]() |
|
Создано: 18 мая 2008 14:20 · Личное сообщение · #14 |
![]() |
eXeL@B —› Вопросы новичков —› Помогите раскурочить архив. |
Эта тема закрыта. Ответы больше не принимаются. |