Цитата:
Сообщение от Foru
Не подключает)
|
Угу файрвол блочит на работе торрент
Да то пофиг, вон архивом выложили клиент 20 мин качался.
Жопа с лицензией для GameEntry смотрю там ключь юзается не просто ля проверки лицензии, а что-то еще работает на основе ключа, т.е. даже если его в дллке попробовать обойти то не факт что запустится сервер.
Чуть что кто будет ковырять совету посмотреть область в FsSoloEntry.dll
.text:1000CBE0 ; void __cdecl lookup_thread(void *lpParameter)
.text:1000CBE0 ?lookup_thread@@YAXPAX@Z proc near ; DATA XREF: SoloEntry::Start(void)+4CEo
Code: C++
Там в методе вроде есть механизм расшифровки lic файла, хотя могу и ошибаться. Разбираться надо, сил нет, спать хотса.
.text:1000CF5A loc_1000CF5A: ; CODE XREF: lookup_thread(void *)+289j
.text:1000CF5A ; lookup_thread(void *)+2A4j ...
.text:1000CF5A mov eax, 0CCCCCCCCh
.text:1000CF5F mov dword ptr [esp+1E0h+key], eax
.text:1000CF66 mov dword ptr [esp+1E0h+key+4], eax
.text:1000CF6D mov dword ptr [esp+1E0h+key+8], eax
.text:1000CF74 mov dword ptr [esp+1E0h+key+0Ch], eax
.text:1000CF7B lea edi, [esp+1E0h+addr] ; str
.text:1000CF82 mov esi, 10h ; byte_size
.text:1000CF87 lea ebx, [esp+1E0h+key+10h] ; buf
.text:1000CF8E mov dword ptr [esp+1E0h+key+10h], eax
.text:1000CF95 mov dword ptr [esp+1E0h+key+14h], eax
.text:1000CF9C mov dword ptr [esp+1E0h+key+18h], eax
.text:1000CFA3 mov dword ptr [esp+1E0h+key+1Ch], eax
.text:1000CFAA mov [esp+1E0h+key], 77h
.text:1000CFB2 mov [esp+1E0h+key+1], 56h
.text:1000CFBA mov [esp+1E0h+key+2], 0D3h
.text:1000CFC2 mov [esp+1E0h+key+3], 34h
.text:1000CFCA mov [esp+1E0h+key+4], 2Bh
.text:1000CFD2 mov [esp+1E0h+key+5], 8Ch
.text:1000CFDA mov [esp+1E0h+key+6], 0E2h
.text:1000CFE2 mov [esp+1E0h+key+7], 2Fh
.text:1000CFEA mov [esp+1E0h+key+8], 0EDh
.text:1000CFF2 mov [esp+1E0h+key+9], 0ACh
.text:1000CFFA mov [esp+1E0h+key+0Ah], 0B8h
.text:1000D002 mov [esp+1E0h+key+0Bh], 15h
.text:1000D00A mov [esp+1E0h+key+0Ch], 45h
.text:1000D012 mov [esp+1E0h+key+0Dh], 9Eh
.text:1000D01A mov [esp+1E0h+key+0Eh], 5Eh
.text:1000D022 mov [esp+1E0h+key+0Fh], 0C4h
.text:1000D02A call ?CopyString@@YAXPADIPBD@Z ; CopyString(char *,uint,char const *)
.text:1000D02F xor eax, eax
.text:1000D031 mov [esp+1E0h+alg.m_Count], eax
.text:1000D038 mov [esp+1E0h+alg.m_Count+4], eax
.text:1000D03F lea eax, [esp+1E0h+key]
.text:1000D046 push eax ; this
.text:1000D047 lea eax, [esi+10h] ; nInputLen
.text:1000D04A lea ecx, [esp+1E4h+alg]
.text:1000D051 mov [esp+1E4h+alg.m_State], 67452301h
.text:1000D05C mov [esp+1E4h+alg.m_State+4], 0EFCDAB89h
.text:1000D067 mov [esp+1E4h+alg.m_State+8], 98BADCFEh
.text:1000D072 mov [esp+1E4h+alg.m_State+0Ch], 10325476h
.text:1000D07D call ?Update@md5@@QAEXPAEI@Z ; md5::Update(uchar *,uint)
.text:1000D082 lea ecx, [esp+1DCh+alg.m_State+4] ; this
.text:1000D089 call ?Finalize@md5@@QAEXXZ ; md5::Finalize(void)
.text:1000D08E lea ebx, [esp+1DCh+alg.m_Digest+4] ; hexkey
.text:1000D095 call ?des2key@@YAXPAEF@Z ; des2key(uchar *,short)
.text:1000D09A cmp byte ptr [esp+1DCh+var_1D0+3], 0
.text:1000D09F jnz short loc_1000D0F5
.text:1000D0A1 lea esi, [esp+1DCh+data+104h] ; into
.text:1000D0A8 mov edi, esi ; from
.text:1000D0AA call ?D2des@@YAXPAE0@Z ; D2des(uchar *,uchar *)
.text:1000D0AF mov ecx, dword ptr [esp+1DCh+data+104h]
.text:1000D0B6 mov edx, dword ptr [esp+1DCh+data+108h]
.text:1000D0BD lea eax, [esp+1DCh+key+4]
.text:1000D0C4 mov dword ptr [esp+1DCh+key+0Ch], ecx
.text:1000D0CB push eax ; this
.text:1000D0CC mov eax, 20h ; nInputLen
.text:1000D0D1 lea ecx, [esp+1E0h+alg.m_State+4]
.text:1000D0D8 mov dword ptr [esp+1E0h+key+10h], edx
.text:1000D0DF call ?Update@md5@@QAEXPAEI@Z ; md5::Update(uchar *,uint)
.text:1000D0E4 lea ecx, [esp+1D8h+alg.m_State+8] ; this
.text:1000D0EB call ?Finalize@md5@@QAEXXZ ; md5::Finalize(void)
.text:1000D0F0 call ?des2key@@YAXPAEF@Z ; des2key(uchar *,short)
.text:1000D0F5
.text:1000D0F5 loc_1000D0F5: ; CODE XREF: lookup_thread(void *)+4BFj
.text:1000D0F5 lea esi, [esp+1D8h+data+8] ; into
.text:1000D0F9 mov ebx, 10h
.text:1000D0FE mov edi, edi
.text:1000D100
.text:1000D100 loc_1000D100: ; CODE XREF: lookup_thread(void *)+52Dj
.text:1000D100 mov edi, esi ; from
.text:1000D102 call ?D2des@@YAXPAE0@Z ; D2des(uchar *,uchar *)
.text:1000D107 add esi, 10h
.text:1000D10A sub ebx, 1
.text:1000D10D jnz short loc_1000D100
.text:1000D10F xor ecx, ecx
.text:1000D111 xor eax, eax
.text:1000D113
Code: C++