能力值:
( LV2,RANK:10 )
|
-
-
2 楼
signed int __stdcall Decode2010(int a1, int a2) { int v2; // esi@1 signed int v3; // ebp@1 signed int result; // eax@2 int v5; // edi@4 int v6; // ST08_4@4 int v7; // esi@4 int v8; // ST08_4@4 int v9; // edi@4 int v10; // esi@6 int v11; // esi@8 int v12; // eax@10 int v13; // eax@10 signed int v14; // eax@10 int v15; // ebp@11 int v16; // ST08_4@12 int v17; // esi@12 int v18; // ST08_4@12 int v19; // edi@12 int v20; // esi@14 int v21; // eax@16 int v22; // eax@16 int v23; // esi@18 int v24; // eax@18 int v25; // eax@18 int v26; // esi@19 int v27; // ecx@19 int v28; // eax@20 int v29; // edi@20 int v30; // [sp+10h] [bp-50h]@1 int v31; // [sp+14h] [bp-4Ch]@1 int v32; // [sp+18h] [bp-48h]@1 int v33; // [sp+1Ch] [bp-44h]@1 int v34; // [sp+20h] [bp-40h]@3 char v35; // [sp+24h] [bp-3Ch]@4 char v36; // [sp+28h] [bp-38h]@4 char v37; // [sp+2Ch] [bp-34h]@10 char v38; // [sp+30h] [bp-30h]@10 char v39; // [sp+34h] [bp-2Ch]@12 char v40; // [sp+38h] [bp-28h]@12 char v41; // [sp+3Ch] [bp-24h]@16 char v42; // [sp+40h] [bp-20h]@16 int v43; // [sp+44h] [bp-1Ch]@1 char v44; // [sp+48h] [bp-18h]@18 char v45; // [sp+4Ch] [bp-14h]@18 char v46; // [sp+50h] [bp-10h]@18 int v47; // [sp+5Ch] [bp-4h]@1 int v48; // [sp+64h] [bp+4h]@3
CString::CString(&v30); v47 = 0; CString::CString(&v31); LOBYTE(v47) = 1; CString::CString(&v32); LOBYTE(v47) = 2; CString::CString(&v33); v2 = a1; LOBYTE(v47) = 3; CString::operator_(&v33, a1); v43 = *(_DWORD *)(v33 - 8); v3 = v43; if ( v43 >= 3 ) { CString::operator_(&v32, "3240971658"); v48 = *(_DWORD *)(v32 - 8); CString::operator_(&v30, v2); v34 = 1; if ( v3 < 1 ) { LABEL_19: v26 = v31; v27 = 0; if ( *(_DWORD *)(v31 - 8) > 0 ) { v28 = a2; v29 = v31 - a2; do { ++v27; *(_BYTE *)v28 = *(_BYTE *)(v29 + v28); ++v28; } while ( v27 < *(_DWORD *)(v26 - 8) ); } *(_BYTE *)(v27 + a2) = 0; Sleep(0xC8u); LOBYTE(v47) = 2; CString::_CString(&v33); LOBYTE(v47) = 1; CString::_CString(&v32); LOBYTE(v47) = 0; CString::_CString(&v31); v47 = -1; CString::_CString(&v30); result = 0; } else { while ( 1 ) { CString::operator_(&v31, byte_1000433C); v5 = *(_DWORD *)(v30 - 8); v6 = *(_DWORD *)CString::Mid(&v30, &v35, v5 - 1, 1); LOBYTE(v47) = 4; v7 = CString::FindOneOf(&v32, v6) + 1; LOBYTE(v47) = 3; CString::_CString(&v35); v8 = *(_DWORD *)CString::Mid(&v30, &v36, v5 - 2, 1); LOBYTE(v47) = 5; v9 = CString::FindOneOf(&v32, v8) + 1; LOBYTE(v47) = 3; CString::_CString(&v36); if ( v7 <= 0 || v9 <= 0 ) { LOBYTE(v47) = 2; CString::_CString(&v33); LOBYTE(v47) = 1; CString::_CString(&v32); LOBYTE(v47) = 0; CString::_CString(&v31); v47 = -1; CString::_CString(&v30); return -2; } v10 = v7 - v9; if ( v10 < 1 ) v10 += v48; v11 = 2 * v10; if ( v11 > v48 ) v11 -= v48; v12 = CString::Mid(&v32, &v38, v11 - 1, 1); LOBYTE(v47) = 6; v13 = operator_(&v37, v12, &v30); LOBYTE(v47) = 7; CString::operator_(&v30, v13); LOBYTE(v47) = 6; CString::_CString(&v37); LOBYTE(v47) = 3; CString::_CString(&v38); v14 = *(_DWORD *)(v30 - 8); if ( v14 >= 2 ) break; LABEL_18: v23 = CString::Mid(&v31, &v46, 0, *(_DWORD *)(v31 - 8) - 1); LOBYTE(v47) = 12; v24 = CString::Right(&v31, &v45, 1); LOBYTE(v47) = 13; v25 = operator_(&v44, v24, v23); LOBYTE(v47) = 14; CString::operator_(&v31, v25); LOBYTE(v47) = 13; CString::_CString(&v44); LOBYTE(v47) = 12; CString::_CString(&v45); LOBYTE(v47) = 3; CString::_CString(&v46); CString::operator_(&v30, &v31); ++v34; if ( v34 > v3 ) goto LABEL_19; } v15 = v14 - 2; while ( 1 ) { v16 = *(_DWORD *)CString::Mid(&v30, &v39, v15 + 1, 1); LOBYTE(v47) = 8; v17 = CString::FindOneOf(&v32, v16) + 1; LOBYTE(v47) = 3; CString::_CString(&v39); v18 = *(_DWORD *)CString::Mid(&v30, &v40, v15, 1); LOBYTE(v47) = 9; v19 = CString::FindOneOf(&v32, v18) + 1; LOBYTE(v47) = 3; CString::_CString(&v40); if ( v17 <= 0 ) break; if ( v19 <= 0 ) break; v20 = v17 - v19; if ( v20 < 1 ) v20 += v48; v21 = CString::Mid(&v32, &v42, v20 - 1, 1); LOBYTE(v47) = 10; v22 = operator_(&v41, v21, &v31); LOBYTE(v47) = 11; CString::operator_(&v31, v22); LOBYTE(v47) = 10; CString::_CString(&v41); LOBYTE(v47) = 3; CString::_CString(&v42); --v15; if ( v15 + 2 < 2 ) { v3 = v43; goto LABEL_18; } } LOBYTE(v47) = 2; CString::_CString(&v33); LOBYTE(v47) = 1; CString::_CString(&v32); LOBYTE(v47) = 0; CString::_CString(&v31); v47 = -1; CString::_CString(&v30); result = -3; } } else { LOBYTE(v47) = 2; CString::_CString(&v33); LOBYTE(v47) = 1; CString::_CString(&v32); LOBYTE(v47) = 0; CString::_CString(&v31); v47 = -1; CString::_CString(&v30); result = -1; } return result; }
IDAF5过来是这个样子,楼主自己看看吧
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
感谢你的热心回答!
我也拉了 ,主要是算法不会 !
如有时间麻烦你一下!
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
走过,路过,,,帮帮忙啊~!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
学习了,谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
大牛啊,帮帮忙啊~!~~!~!~
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
重新写个dssdll.dll,在其中另写Decode2010函数。已经实现了你想要的功能。
并且已注册成功。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
Decode2010的算法已经知道,并且可以算法也已解决。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
看不懂。。。。。
|