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

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

Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 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

Кто знает, посоветуйте.




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 13 мая 2008 21:00
· Личное сообщение · #2

1) найди какая ф-ция принимает пароль

2) сделай свою .dll с теми же ф-циями, и запиши все аргументы в log. Альтернатива - копай прогу в IDA - увидишь где/как она вызывает ф-ция распаковки.



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 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
вроде ноль. Что это такое?



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

Создано: 16 мая 2008 10:23
· Личное сообщение · #4

Дык пароль то надо узнавать в отладчике а не и ИДЕ , и еще есть же у тебя либа , вот и сделай из нее ексампел по расшифровке како ва нить rar а , а потом свой крякмис анализируй смотри от куда и как она юзает твой пас, соответсвенно по тому же алго ищи пас в жертве.



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

Создано: 16 мая 2008 11:42 · Поправил: Stack
· Личное сообщение · #5

Ну или свою либу написать которая будет все функции оригинальной транслировать а пароль в лог. Как говориться получиться универсальный пароле ловитель
Ну и собственно хидеры unrar.dll на разных языках + сама DLL хттп://www.rarlab.com/rar/UnRARDLL.exe

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 16 мая 2008 13:38
· Личное сообщение · #6

Stack пишет:
универсальный пароле ловитель

Вот это тема... Если кто вдруг заинтересуется, разовьёт идею и замутит - было бы очень не плохо...
Мне кстати тоже интересно, т.ч. можно вместе сделать

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 16 мая 2008 15:42 · Поправил: Stack
· Личное сообщение · #7

Milfhunter пишет:
Нашел что пароль посылается, как параметр для функции
RARSetCallback(hArcData, CallBackProc, (LONG)sPass);

Ты не прав товарищ. посмотри исходник моего рипера паролей и узнаешь почему.

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74




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

Создано: 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





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 17 мая 2008 11:18
· Личное сообщение · #9

Вот именно в этой проге "JeepPrice" у меня не сработало

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 17 мая 2008 16:40 · Поправил: Stack
· Личное сообщение · #10

Isaev пишет:
Вот именно в этой проге "JeepPrice" у меня не сработало

У меня тоже в одной вылетало скорее всего проверяеться чевото. или версия библы не та.

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74




Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 мая 2008 21:10
· Личное сообщение · #11

Stack пишет:
Milfhunter пишет:
Нашел что пароль посылается, как параметр для функции
RARSetCallback(hArcData, CallBackProc, (LONG)sPass);
Ты не прав товарищ. посмотри исходник моего рипера паролей и узнаешь почему.

Я должен был внимательно посмотреть тсходники либы. А вместо этого посмотрел в сорсы кого-то, кто использовал ее. Пароль в CallbackProc, насколько я понимаю.

Спасибо за помощь, попытаюсь написать то же самое на Си. Чтоб понятнее было. Никто не знает, почему гцц компилятор, когда библиотеку создает, присваивает именам функций названия типа ИМЯФУНКЦИИ@ДЛИНА_ПАРАМЕТРОВ? То есть, например, RARSetCallback@12. Из-за этого у меня функции не находит. Я прочитал, что это вроде отладочная информация, но как ее убрать в опциях не написано.
Isaev пишет:
Вот именно в этой проге "JeepPrice" у меня не сработало

Stack пишет:
У меня тоже в одной вылетало скорее всего проверяеться чевото. или версия библы не та.

Да, у меня тоже не работает. Вот подстава...

З.Ы. Просьба к модераторам: удалите тему, пожалуйста.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 17 мая 2008 22:09
· Личное сообщение · #12

jeepautoclondike

-----
EnJoy!





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 17 мая 2008 23:40
· Личное сообщение · #13

это называется Секрет Полишинеля http://ru.wikipedia.org/wiki/Секрет_Полишинеля ;)
строка с паролем лежит открытым текстом.
Даже не нужно запускать программу, т.к. в RARSetCallback передаётся адрес CallbackProc (004A44B8), а
Callback функция обрабатывает сообщение UCM_NEEDPASSWORD и копирует пароль.

P.S. ФСБ и так есть чем заняться

-----
EnJoy!




Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 мая 2008 14:20
· Личное сообщение · #14

Ладно, всё понятно. Я кривой, впредь буду внимательнее. Всем спасибо. Вопрос исчерпан.


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