Цитата:
Сообщение от lmikle
ЗЗЫ. Ну и еще всегда можно попробовать дизасемблировать программу и попробовать "выковырять" алгоритм из нее...
|
Решил пойти по этому пути, но наткнулся на одну не понятную для меня штуку:
Код:
movzx eax, ds:ИМЯ_ИЗ_.rdata[edx*2]
в .rdata это выглядит вот так:
Код:
.rdata:10029678 ; __int16 ИМЯ[]
.rdata:10029678 ИМЯ dw 0 ; DATA XREF: адрес_вызова+46r
.rdata:1002967A db 89h ; Й
Можете пояснить смысл данной манипуляции?
З.Ы. вот псевдокод который мне сгенерил HexRay:
Код:
__int16 __stdcall sub_1001B4C0(_BYTE *a1, int a2, __int16 a3)
{
int v3; // ecx@2
unsigned __int16 v4; // ST00_2@3 стартовое значение = 0 (не уверен)
__int16 i; // [sp+0h] [bp-4h]@1
for ( i = a3; ; i = ИМЯ[(unsigned __int8)v4] ^ ((signed int)v4 >> 8) )
{
v3 = a2--;
if ( v3 <= 0 )
break;
v4 = *a1++ ^ i;
}
return i;
}