Сейчас на форуме: -Sanchez-, barsik, vasilevradislav, vsv1, padad42664, kris_sexy, site-pro (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› Исследование ProxySwitcher
Посл.ответ Сообщение


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

Создано: 22 октября 2007 01:02 · Поправил: Isaev
· Личное сообщение · #1

ProxySwitcher v3.11 www.proxyswitcher.com/pub/ProxySwitcherStandard.exe 3.4Mb
Не запакована, Borland Delphi 4.0 - 5.0
Цель найти валидный код (без патча).
От имени пользователя похоже не зависит...
По адресу 48C760 - берётся Hash от введённого кода... Процедуру получения Hasha уже написал
Дальше по коду запутался
Вопрос: С где и с чем он сверяется?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 22 октября 2007 09:13 · Поправил: [HEX]
· Личное сообщение · #2

Isaev
Так если от введеного получается хэш, то и сверяется наверное с хэшом(ами). Каким образом собираешся искать серийники? =\ Брутить будешь? Этож не практично Хотя все зависит от методы получения хэша...

-----
Computer Security Laboratory





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

Создано: 22 октября 2007 14:48 · Поправил: Isaev
· Личное сообщение · #3

[HEX] пишет:
Брутить будешь? Этож не практично

Может и не практично, но я ещё не пробывал... Хочу забрутить, благо RegCode от имени пользователя не зависит...

[HEX] пишет:
Хотя все зависит от методы получения хэша...

Метод, хоть и не сложный, но не обратимый...
0048C760 /$ 55 PUSH EBP
0048C761 |. 8BEC MOV EBP,ESP
0048C763 |. 83C4 F0 ADD ESP,-10
0048C766 |. 53 PUSH EBX
0048C767 |. 56 PUSH ESI
0048C768 |. 57 PUSH EDI
0048C769 |. 894D F8 MOV DWORD PTR SS:[EBP-8],ECX
0048C76C |. 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
0048C76F |. 8BC8 MOV ECX,EAX
0048C771 |. 8B11 MOV EDX,DWORD PTR DS:[ECX]
0048C773 |. 8B49 04 MOV ECX,DWORD PTR DS:[ECX+4]
0048C776 |. 33C0 XOR EAX,EAX
0048C778 |. C745 F4 B9793>MOV DWORD PTR SS:[EBP-C],9E3779B9
0048C77F |. 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
0048C782 |. 895D F0 MOV DWORD PTR SS:[EBP-10],EBX
0048C785 |. 837D F0 00 CMP DWORD PTR SS:[EBP-10],0
0048C789 |. 76 49 JBE SHORT ProxySwi.0048C7D4
0048C78B |> 8BD9 /MOV EBX,ECX
0048C78D |. C1E3 04 |SHL EBX,4
0048C790 |. 8BF1 |MOV ESI,ECX
0048C792 |. C1EE 05 |SHR ESI,5
0048C795 |. 33DE |XOR EBX,ESI
0048C797 |. 03D9 |ADD EBX,ECX
0048C799 |. 33D8 |XOR EBX,EAX
0048C79B |. 8BF0 |MOV ESI,EAX
0048C79D |. 83E6 03 |AND ESI,3
0048C7A0 |. 8B7D F8 |MOV EDI,DWORD PTR SS:[EBP-8]
0048C7A3 |. 031CB7 |ADD EBX,DWORD PTR DS:[EDI+ESI*4]
0048C7A6 |. 03D3 |ADD EDX,EBX
0048C7A8 |. 0345 F4 |ADD EAX,DWORD PTR SS:[EBP-C]
0048C7AB |. 8BDA |MOV EBX,EDX
0048C7AD |. C1E3 04 |SHL EBX,4
0048C7B0 |. 8BF2 |MOV ESI,EDX
0048C7B2 |. C1EE 05 |SHR ESI,5
0048C7B5 |. 33DE |XOR EBX,ESI
0048C7B7 |. 03DA |ADD EBX,EDX
0048C7B9 |. 33D8 |XOR EBX,EAX
0048C7BB |. 8BF0 |MOV ESI,EAX
0048C7BD |. C1EE 0B |SHR ESI,0B
0048C7C0 |. 83E6 03 |AND ESI,3
0048C7C3 |. 8B7D F8 |MOV EDI,DWORD PTR SS:[EBP-8]
0048C7C6 |. 031CB7 |ADD EBX,DWORD PTR DS:[EDI+ESI*4]
0048C7C9 |. 03CB |ADD ECX,EBX
0048C7CB |. FF4D F0 |DEC DWORD PTR SS:[EBP-10]
0048C7CE |. 837D F0 00 |CMP DWORD PTR SS:[EBP-10],0
0048C7D2 |.^ 77 B7 \JA SHORT ProxySwi.0048C78B
0048C7D4 |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0048C7D7 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
0048C7D9 |. 8910 MOV DWORD PTR DS:[EAX],EDX
0048C7DB |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0048C7DE |. 8948 04 MOV DWORD PTR DS:[EAX+4],ECX
0048C7E1 |. 5F POP EDI
0048C7E2 |. 5E POP ESI
0048C7E3 |. 5B POP EBX
0048C7E4 |. 8BE5 MOV ESP,EBP
0048C7E6 |. 5D POP EBP
0048C7E7 \. C2 0400 RETN 4


Вопрос остался: С где и с чем он сверяется?
Может с этим?
006C5380=ProxySwi.006C5380 (ASCII "B5DA3A79E143B8CB725094CE907BBC2393CB1FB587479C1ABC37610F10B726FC")

PS: Кстати, HashAlgo - что-то стандартное или самопальный?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

Создано: 23 октября 2007 16:05
· Личное сообщение · #4

Все только крякми ковырять могут, а реальную защиту не одолеть?
...подскажите, в самом деле!...

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 23 октября 2007 21:05 · Поправил: tempread
· Личное сообщение · #5

Подробно прогу не смотрел, но удивила сильная антиотладка,и навскидку нашел такую строчку:
01CCB8E5 68 74 74 70 3A 2F 2F 6F 72 65 61 6E 73 [url=http://oreans
]http://oreans
[/url]
01CCB8F5 2E 63 6F 6D 2F 69 6D 61 67 65 73 2F 62 6F 78 2E .com./images/box.
01CCB905 74 68 65 6D 69 64 61 2E 67 69 66 themida.gif

Ты уверен что
Не запакована, Borland Delphi 4.0 - 5.0
?

P.S. Ошибочка вышла... Прога хватает фалик из кеша броузера,и держит в памяти, и вышеприведенная строчка именно оттуда... Фантомчик что-то тут не очень помогает



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

Создано: 24 октября 2007 20:36
· Личное сообщение · #6

В проге используется вот это(если чем-то это поможет):
www.delphisources.ru/pages/faq/base/encode_tea.html

Call stack:
---------------------------------------------------------------------- --------
7C812A5B See function "proxyswitcher" in unit "proxyswitcher" at line 470
00404201 See function "@NewAnsiString" in unit "System"
0048C917 See function "TEA_EnDec" in unit "ucrypt" at line 129
00404201 See function "@NewAnsiString" in unit "System"
00402B40 See function "Error" in unit "System"
00404228 See function "@LStrFromPCharLen" in unit "System"
0040BCEB See function "StrPas" in unit "SysUtils"
0060AAFE See function "RCode" in unit "ukdec" at line 82
00403B3C See function "@HandleFinally" in unit "System"
0060B9F3 See function "TRForm.Button3Click" in unit "frform" at line 156
0060AC61 See function "DeCodeX" in unit "ukdec" at line 82
00403B3C See function "@HandleFinally" in unit "System"
00402A5E See function "@FreeMem" in unit "System"
0040417A See function "@LStrArrayClr" in unit "System"
0060AACB See function "SCode" in unit "ukdec" at line 82
0060ADB0 See function "DeCode" in unit "ukdec" at line 82
0060B9F3 See function "TRForm.Button3Click" in unit "frform" at line 156
00403B3C See function "@HandleFinally" in unit "System"
00439F88 See function "TControl.Click" in unit "Controls"
00430FDD See function "TButton.Click" in unit "StdCtrls"
004310D1 See function "TButton.CNCommand" in unit "StdCtrls"
00439DF4 See function "TControl.WndProc" in unit "Controls"
0043C8B7 See function "TWinControl.WndProc" in unit "Controls"
00430F51 See function "TButtonControl.WndProc" in unit "StdCtrls"
0061C03A See function "TWindowProcList.DispatchMessage" in unit "ThemeMgr" at line 697
0061C82C See function "TThemeManager.ButtonControlWindowProc" in unit "ThemeMgr" at line 1016




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

Создано: 24 октября 2007 22:00
· Личное сообщение · #7

tempread пишет:
Ты уверен что
Не запакована, Borland Delphi 4.0 - 5.0
?

Да не уверен, слишком уж код запутан... Всё может быть...
Может распаковав эту дрянь станет легче жить
Вообще-то 4,17Мб для Delphi проекта это уже дохрена, учитывая, что там не напихано разных звуков и графики... Т.ч. по идее она не запакована... Может просто сверху какая-нибудь антиотладка навешана?
Есть у кого-нибудь соображения по этому поводу?

tempread пишет:
Фантомчик что-то тут не очень помогает

Без него кстати вообще не разу в Olly запустить не смог...

tempread пишет:
В проге используется вот это(если чем-то это поможет):

+1 Точно... Я переводил с asma на Delphi стандартную процедуру...
Докатился, блин!

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 66.5 (постоянный)
Активность: 0.030
Статус: Участник
Повелитель ЗЛА

Создано: 25 октября 2007 10:55
· Личное сообщение · #8

48C760 - это не хэш, это крипто функция алгоритма TEA, если полистать дизассемблерный листинг чуть ниже, то обнаружится обратное действие этому. От ключа там происходит происходит декриптовка кода, для себя я сделал вывод: 1. Либо брутить неизвестное время, но долго. 2. Имея валидный ключ можно сделать патч или пользоваться этим же ключом.



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

Создано: 25 октября 2007 18:42 · Поправил: BfoX
· Личное сообщение · #9

Все там обратимо, найди 128 битный ключ и будет тебе счастье...

/********************************************************************* ********/
/* MXTEA.H - XTEA Encryption/Decryption Algorithm */
/* */
/* (C) TDi GmbH */
/* */
/* Include File for C/C++ */
/********************************************************************* ********/
/* The 'Extended Tiny Encryption Algorithm' (XTEA) by David Wheeler and */
/* Roger Needham of the Cambridge Computer Laboratory. */
/* XTEA is a Feistel cipher with XOR and AND addition as the non-linear */
/* mixing functions. */
/* Takes 64 bits (8 Bytes block) of data in Data[0] and Data[1]. */
/* Returns 64 bits of encrypted data in Data[0] and Data[1]. */
/* Takes 128 bits of key in Key[0] - Key[3]. */
/********************************************************************* ********/


short MxApp_Encrypt(unsigned long *DataBlock, unsigned long *Key);
short MxApp_Decrypt(unsigned long *DataBlock, unsigned long *Key);

//-------------------------------------------------------------------- ---------
short MxApp_Encrypt(unsigned long *Data, unsigned long *Key)
//-------------------------------------------------------------------- ---------
{
register unsigned long delta, sum;
short cnt;
sum = 0;
delta = 0x9E3779B9;
cnt = 32;
while(cnt-- > 0)
{
Data[0] += (Data[1]<<4 ^ Data[1]>>5) + Data[1] ^ sum + Key[sum&3];
sum += delta;
Data[1] += (Data[0]<<4 ^ Data[0]>>5) + Data[0] ^ sum + Key[sum>>11 & 3];
}
return 0;
}

//-------------------------------------------------------------------- ---------
short MxApp_Decrypt(unsigned long *Data, unsigned long *Key)
//-------------------------------------------------------------------- ---------
{
register unsigned long delta, sum;
short cnt;
// sum = 0xC6EF3720;
delta = 0x9E3779B9;
sum = delta << 5;
cnt = 32;
while(cnt-- > 0)
{
Data[1] -= ((Data[0]<<4 ^ Data[0]>>5) + Data[0]) ^ (sum + Key[sum>>11 & 3]);
sum -= delta;
Data[0] -= ((Data[1]<<4 ^ Data[1]>>5) + Data[1]) ^ (sum + Key[sum&3]);
}
return 0;
}

-----
...или ты работаешь хорошо, или ты работаешь много...





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

Создано: 25 октября 2007 22:29
· Личное сообщение · #10

BfoX пишет:
Все там обратимо, найди 128 битный ключ и будет тебе счастье...

Этим я и хотел бы заняться... На алго ссылку уже tempread давал выше... Да я с ним и по асм коду разобрался.

ev1l_4 пишет:
48C760 - это не хэш, это крипто функция алгоритма TEA, если полистать дизассемблерный листинг чуть ниже, то обнаружится обратное действие этому. От ключа там происходит происходит декриптовка кода

Т.е. строка криптуется и ни с чем не сравнивается? Думаешь по криптокоду потом расшифровываются какие-то куски программы? Но это же полный функционал в течении триал срока, значит там ничего не шифруется, а ключик должен где-то сравниваться... (что и надо для брута, но я это место не нашёл :s14

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 25 октября 2007 22:45 · Поправил: tempread
· Личное сообщение · #11

Хочу заметить, что я дал ссылку не просто на реализацию алгоритма шифрования, а на модуль, который ИСПОЛЬЗОВАН(сужу по названиям функций и названию модуля, которые приведены в отладочной информации.) в программе, да еще и адреса функций привел.




Ранг: 66.5 (постоянный)
Активность: 0.030
Статус: Участник
Повелитель ЗЛА

Создано: 26 октября 2007 16:59
· Личное сообщение · #12

Isaev пишет:
Думаешь по криптокоду потом расшифровываются какие-то куски программы

Я не думаю, я знаю! Просто лень снова устанавливать прогу, на брут я забил, ибо долго будит.
А раскриптовывается код сначала в другое место, далее если word от хэша раскриптованного кода+3 совпадает с первым word,ом раскриптованного кода, то он перезаписывается в проге+переход меняется, как раз тот, что после CALL EAX. Тут дело не в обратимости, а в ключе раскриптовки.


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


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