Сейчас на форуме: Adler, asfa, bartolomeo (+8 невидимых)

 eXeL@B —› Вопросы новичков —› Разбор алгоритма программы
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 20 сентября 2012 15:57
· Личное сообщение · #1

Есть такая программа ->
AutoPlay Media Studio (58 Мб)
После компиляции проекта, созданного в ней, создается также файл с расширением .CDD - зашифрованный архив (пароль для извлечения находиться с помощью Ольки или с помощью AutoPlay Media Studio Password Tool от Kindly из того же топика на ру-борде) . Он (архив) содержит в себе 3 файла:
1) _detect.dat;
2) _proj.dat;
3) _fonts.dat,
необходимых для работы скомпилированной программы.
Интересует меня второй файл. Он содержит в непонятном виде исходный проект, написанный в этой программе.
Мои попытки анализа этого файла не привели к большим результатам. Поэтому прошу Вас помочь мне с расшифровкой этого файла. Или подскажите с чего начать. Спасибо.

Отдельно скомпилированный проект ->
test.zip (3.5 Мб)



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 20 сентября 2012 18:42
· Личное сообщение · #2

Что-то мне подсказывает, что это в запросы на взлом..

-----
продавец резиновых утёнков




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

Создано: 20 сентября 2012 20:21
· Личное сообщение · #3

AMSPeople
Ты юморист, кинул ТЗ хотя даже пароль не удосужился дать не говоря что сам ничего не сделал, или думаешь кто то ресерчить будет или качать тул, мда, сказал бы, да арчер не дремлет и забанит мну.



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

Создано: 20 сентября 2012 20:21 · Поправил: AMSPeople
· Личное сообщение · #4

HiEndsoft, я могу Вас на 100% уверить, если Вы намекаете, что мне нужно для своей выгоды, восстановить чей-то проект, то это не так! Мой ник на форуме ру-боард - Zloy_Gelud. Если вы посмотрите хотя бы немного топик о программе AutoPlay Medio Studio, то поймете, что я довольно-таки компетентен в данной программе. И мне не составит труда восстановить оригинал люого проекта, написанного в этой программе. В данный момент у меня есть идея написать программу, которая сама будет восстанавливать практически оригинальный проект, анализируя файл _proj.dat. После окончания работы, файл был бы выложен в паблик, разумеется никаких денег бы я не просил, чисто для народа. Для этой идеи я и прошу Вашей помощи.



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

Создано: 20 сентября 2012 20:29
· Личное сообщение · #5

Тов. F_a_u_s_t, я, впринципе, думал, что здесь найдутся товарищи, которые скажут, что я лентяй, и ничего не сделал сам. Вы не правы. Я некоторое время занимался данным вопросом самостоятельно. Пытался в WinHex анализировать указанный файл на предмет разбора. Пришел к выводу, что там идет статическая очередность байтов, соответствующая значениям атрибутов файла проекта .AUTOPLAY. Он, по-сути, является XML-файлом. Но, к сожалению, не понял закономерности. Поэтому прошу Вас немного помочь мне в разборе алгоритма расшифровки этого файла, если это конечно возможно.



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

Создано: 20 сентября 2012 20:39 · Поправил: tundra37
· Личное сообщение · #6

AMSPeople Там же все написано : lua. Скорее всего проект в Lua и сделан. А уж как- ищите. Что-то я тут еще взлом lua не видел. Пароль так и не дали. Кстати, народ с руборда тут помощь редко просит - сами разбираются или на руборде - это быстрее будет.

AMSPeople пишет:
Интересует меня второй файл. Он содержит в непонятном виде исходный проект, написанный в этой программе.Мои попытки анализа этого файла не привели к большим результатам.

AMSPeople пишет:
И мне не составит труда восстановить оригинал люого проекта, написанного в этой программе. В данный момент у меня есть идея написать программу, которая сама будет восстановливать практически оригинальный проект, анализируя файл _proj.dat.

Как же это может быть. Как устроен не знаете, но восстановить можете. Неувязочка. А если хотите на автомате сделать то, что ручками умеете, то это к программистам. При чем тут взлом и реверс.
++++++++++++++++++++++++
Ну XML - это вообще текстовый файл. Да я тоже например не могу его понять, но помощи тут просить бесполезно : я вот тоже не могу рассказать, как научился кряку. Давно это было. как-то само пришло.



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

Создано: 20 сентября 2012 20:55 · Поправил: AMSPeople
· Личное сообщение · #7

tundra37, Lua - это интерпритируемый язык. AMS позволяет использовать конструкции LUA-языка в своем синтаксисе. Но утверждать, что проект написана на LUA однозначно нельзя.
>> Пароль так и не дали.
Извините, но если это сложно для Вас, то я постараюсь его накопать сам в Ольке, хотя, я сам в ней нуб.
>> сами разбираются или на руборде - это быстрее будет.
Это значит топик можно закрывать?
>> Как же это может быть. Как устроен не знаете, но восстановить можете. Неувязочка.
Вы не совсем правы. Восстановить проект и создать копию проекта - разные вещи, в данном случае. Я могу восстановить проект, стырив код из памяти, где он хранится, или восстановив его вручную, не смотря туда.
>> При чем тут взлом и реверс.
Аналзируя движок win32rt.dat, я, так думаю, можно понять как он расшифровывает файл _proj.dat.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 20 сентября 2012 21:26
· Личное сообщение · #8

пароль на распаковку
-A&@#JE/<ak><&JSH!vQ@
x3Dft>?#@(JHfKSH:OAUScareful[w|D*$g.&



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

Создано: 20 сентября 2012 21:57 · Поправил: AMSPeople
· Личное сообщение · #9

Vovan666, только уж лучше выкладывать в текстовом файле, т.к. в пароле полно спецсимволов.


49a3_20.09.2012_EXELAB.rU.tgz - code.txt



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 20 сентября 2012 22:32
· Личное сообщение · #10

AMSPeople, только это нужно было сделать еще в первом посте.



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

Создано: 20 сентября 2012 22:35
· Личное сообщение · #11

// Offtopic
Vovan666, каюсь



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

Создано: 20 сентября 2012 22:48
· Личное сообщение · #12

AMSPeople
Для меня не проблема найти пароль, только это вам нужно а не мне и как минимум это не уважение, а в файле константы объявлены и в конце луа скрипт.



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

Создано: 20 сентября 2012 22:55
· Личное сообщение · #13

F_a_u_s_t
>> и как минимум это не уважение
Извиняюсь, если что..
>> а в файле константы объявлены
Можно поподробней?



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

Создано: 20 сентября 2012 22:58
· Личное сообщение · #14

AMSPeople
Ну что там подробнее, сначала идет блок констант например:
Code:
  1. IDOK = 1;
  2. IDCANCEL = 2;
  3. IDABORT = 3;
  4. IDIGNORE = 5;
  5. IDRETRY = 4;
  6. IDYES = 6;
  7. IDNO = 7;
  8. SW_SHOWNORMAL = 1;
  9. SW_NORMAL = 1;
  10. SW_MAXIMIZE = 3;
  11. SW_HIDE = 0;
  12. SW_MINIMIZE = 6;
  13. SW_SHOWMINNOACTIVE = 7;


Потом идет методы:
Code:
  1. On Show
  2. On Shutdown
  3. итд


а потом ваш обработчик события:
Code:
  1. On Clickdresult = Dialog.Message("Notice", "Your message here.", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);




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

Создано: 20 сентября 2012 23:03
· Личное сообщение · #15

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



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

Создано: 20 сентября 2012 23:06
· Личное сообщение · #16

AMSPeople
А мне нужно не большой клиент-сервер написать... но некому, опять самому.
Намек думаю ясен.



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

Создано: 20 сентября 2012 23:09
· Личное сообщение · #17

F_a_u_s_t, могу на AMS помочь написать)
>> Намек думаю ясен.
Ну естесно..



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

Создано: 20 сентября 2012 23:16
· Личное сообщение · #18

AMSPeople
Мну саму AMS может написать.
Опишите разбор, завтра запилю скрипт на питоне, есть вас устроит он.



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

Создано: 20 сентября 2012 23:29
· Личное сообщение · #19

F_a_u_s_t
>> Мну саму AMS может написать.
// OFF::: О как Почему Вас еще не видно в оотвествующем топике ну ру-борде?
>> Опишите разбор, завтра запилю скрипт на питоне, есть вас устроит он.
Меня устроил бы на любом ЯПе, кроме Асма, но, если бы я знал весь алгоритм разбора, то бы сюда не писАл.



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

Создано: 20 сентября 2012 23:40 · Поправил: F_a_u_s_t
· Личное сообщение · #20

AMSPeople
Пиши что знаешь, а так выходит мне с ноля делать, а это уже не интересно.
// Я на рубоард захожу что то скачать, а так там не пишу.

Add:
Закончил с работой и потратил минут 10 на просмотр авторунера:
В атаче, что то форум режет тег код.

99c9_20.09.2012_EXELAB.rU.tgz - src.rar



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

Создано: 21 сентября 2012 09:39
· Личное сообщение · #21

F_a_u_s_t, Ваша программа выдрала только код кнопки (через регапсы?). А если в проекте будут заполнены события On Timer, On Audio, On Size и др., как программа себя поведет? А если страниц будет несколько? К тому же в файле зашиты еще размеры, положения объектов и еще куча инфы, которую нужно тоже выдирать. А чтобы понять как и в каком порядке AMS читает байты c этого файла, хотелось бы и разобрать движок win32rt.dat.



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

Создано: 21 сентября 2012 10:24
· Личное сообщение · #22

AMSPeople
Ну а вы дайте проект по больше, посмотрю, нужен только .dat файла, то что было на том и проверял.



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

Создано: 21 сентября 2012 10:36
· Личное сообщение · #23

F_a_u_s_t, Ок. Держите.

aaa5_21.09.2012_EXELAB.rU.tgz - _proj.dat



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

Создано: 21 сентября 2012 16:48
· Личное сообщение · #24

Набросал небольшую утиль ибо времени нет сам екзе ресерчить, сам разбирайся.
Кидай екзе на loader.exe ну или через командную строку или в сенд то добавь, в общем разбирешься.
В меседжбоксе будет код, не полностью правда, нужно будет тыкать по кнопкам, ну лучше чем не чего, особенно если учитывать что тобой ничего не сделано.
Ps. На 64 битной оси работать не будет.

9c3a_21.09.2012_EXELAB.rU.tgz - log.rar

| Сообщение посчитали полезным: ==DJ==[ZLO]

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

Создано: 21 сентября 2012 17:21
· Личное сообщение · #25

F_a_u_s_t, спасибо! Сорками не поделитесь?



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

Создано: 21 сентября 2012 17:33
· Личное сообщение · #26

Особо и нечего давать, по сути хелло ворлд.
loader:
Code:
  1. #include <iostream>
  2. #include <Windows.h>
  3. #include <stdio.h>
  4. #include <pe_lib.h>
  5.  
  6. void GetName(char Name[MAX_PATH])
  7. {
  8.     GetModuleFileName(GetModuleHandle("loader.exe"), Name, MAX_PATH);
  9.     char* Tmp = Name + strlen(Name);
  10.     while (*(--Tmp) != '\');
  11.     *(++Tmp) = '\0';
  12.     strcat(Tmp, "log.dll");
  13.     return;
  14. }
  15.  
  16. void Loader(std::string exe)
  17. {
  18.     STARTUPINFO StartUp;
  19.          PROCESS_INFORMATION ProcessInfo;
  20.  
  21.     CHAR DllName[MAX_PATH];
  22.  
  23.     GetName(DllName);
  24.     std::cout << DllName << std::endl;
  25.  
  26.     ZeroMemory(&StartUp, sizeof(StartUp));
  27.     ZeroMemory(&ProcessInfo, sizeof(ProcessInfo));
  28.     StartUp.cb = sizeof(StartUp);
  29.  
  30.    if(!DetourCreateProcessWithDll(NULL,//,
  31.                                     (LPSTR)exe.c_str(),
  32.                                              NULL,
  33.                                              NULL,
  34.                                              TRUE,
  35.                                              CREATE_DEFAULT_ERROR_MODE,
  36.                                              NULL,
  37.                                              NULL,
  38.                                              &StartUp,
  39.                                              &ProcessInfo,
  40.                                              (LPSTR)DllName,
  41.                                              NULL))
  42.     {
  43.         std::cout << "error create process" << std::endl;
  44.     }
  45.     else
  46.     {
  47.        std::cout << "load create process" << std::endl;
  48.     }
  49.  
  50.  
  51. }
  52.  
  53. int main(int argc, char* argv[])
  54. {
  55.     if (argc == 2)
  56.     {
  57.         std::string exe_file = static_cast<char*>(argv[1]);
  58.         Loader(exe_file);
  59.     }
  60.          
  61.     system("pause");
  62.     return 0;
  63. }


log:
cpp:
Code:
  1. #include "main.h"
  2. #include "lua.hpp"
  3.  
  4. static int (__cdecl *OldFunc) (lua_State *L, const char *buff, size_t sz, const char *name) = luaL_loadbuffer;
  5.  
  6. int __cdecl NewFunc(lua_State *L, const char *buff, size_t sz, const char *name)
  7. {
  8.     __asm{pushad}
  9.     MessageBoxA(0, buff, name, 0);
  10.     __asm {popad}
  11.     return OldFunc(L, buff, sz, name);
  12. }
  13.  
  14.  
  15. BOOL DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
  16. {
  17.     LONG error;
  18.     (void)hinstDLL;
  19.     (void)lpvReserved;
  20.  
  21.     if (DetourIsHelperProcess())
  22.     {
  23.         return TRUE;
  24.     }
  25.  
  26.     if (dwReason == DLL_PROCESS_ATTACH)
  27.     {
  28.         DetourRestoreAfterWith();
  29.         DetourTransactionBegin();
  30.         DetourUpdateThread(GetCurrentThread());
  31.  
  32.         DetourAttach(&(PVOID&)OldFunc, NewFunc);
  33.  
  34.         error = DetourTransactionCommit();
  35.  
  36.         if (error == NO_ERROR)
  37.         {
  38.         }
  39.         else
  40.         {
  41.         }
  42.     }
  43.     else if (dwReason == DLL_PROCESS_DETACH)
  44.     {
  45.         DetourTransactionBegin();
  46.         DetourUpdateThread(GetCurrentThread());
  47.  
  48.         DetourDetach(&(PVOID&)OldFunc, NewFunc);
  49.  
  50.         error = DetourTransactionCommit();
  51.     }
  52.     return TRUE;
  53. }


хидер:
Code:
  1. #ifndef __MAIN_H__
  2. #define __MAIN_H__
  3.  
  4. #include <iostream>
  5. #include <windows.h>
  6. #include "detours.h"
  7.  
  8. #ifdef BUILD_DLL
  9.     #define DLL_EXPORT __declspec(dllexport)
  10. #else
  11.     #define DLL_EXPORT __declspec(dllimport)
  12. #endif
  13.  
  14.  
  15. #ifdef __cplusplus
  16. extern "C"
  17. {
  18. #endif
  19.  
  20. BOOL DLL_EXPORT DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved);
  21.  
  22. #ifdef __cplusplus
  23. }
  24. #endif
  25.  
  26. #endif


В атаче сторонние либы.

0907_21.09.2012_EXELAB.rU.tgz - hook_lua.rar



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

Создано: 13 октября 2012 20:29
· Личное сообщение · #27

F_a_u_s_t Уважаемый Фауст!

Помогите пожалуйста восстановить проект AutoPlay Studio 7.5.
Был утрачен исходный код проекта, однако остался его полный собранный экземпляр.
Я почитал форум, и узнал, что можно восстановить исходный файл проекта по файлу _proj.dat
Мне удалось распаковать его из файла autorun.cdd, но дальше, я совсем не понимаю, как надо действовать. Я завел новый пустой проект, но дальше совсем не понимаю, как перетаскивать туда нужные данные. Не могли бы Вы помочь нащупать правильный путь? Файл _proj.dat я прикрепил в аттач. Спасибо!

462e_13.10.2012_EXELAB.rU.tgz - _proj.dat



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

Создано: 13 октября 2012 22:22
· Личное сообщение · #28

leshakor
Скачайте утилиту из поста номер #24, log.rar как пользоваться там описано.
_proj.dat это текстовый файл, открывайте его в блокноте, там нет только обработчиков, запоскайте авторунер в утилите и тыкайте по кнопкам и меню, в окне будут обработчики, копируйте ctrl + c если что и вставляйте в текстовик.
Если утиль не будет работать давайте весь комплект, екзе вайл и весь ливер с папки авторун или автоплей не помню как она там называется, в общем всю хрень что относится к AutoPlay Studio.




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 14 октября 2012 03:45
· Личное сообщение · #29

Сорри за тупой вопрос, но все же мне непонятно зачем вообще чьи то автораны декомпилить, не проще ли заново написать? Скачал программу, том тупо на форум кнопочки бросаешь и акшены назначаешь, даже кодить особо ненужно... Эта авторан студио по простоте кодинга деже бэйсик уделывает ;)


F_a_u_s_t, файл что leshakor прикрепил блокнотиком то открывается, но там в середине бинарные данные есть, которые явно не текст, так должно быть? Ради интереса просматривал другие ехе от авторан студии, в памяти текст чистый и AutoPlay его хавает...

-----
-=истина где-то рядом=-




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

Создано: 14 октября 2012 11:25
· Личное сообщение · #30

KingSise пишет:
но там в середине бинарные данные есть

Да, так и должно, там вроде обработчики.
Утиль как раз хучит луа буфер и от туда дергает чистый код.


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


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