voy bastante bien....
solo que ahora, me encuentro con esto, y estoy atorado jejejejeje
probé verlo en assembler, que más o menos lo entiendo para reversing, pero se hace un choclo terrible....
Código:
//----- (00401C6F) --------------------------------------------------------
int __cdecl sub_401C6F(unsigned int a1, const void *a2)
{
int v3; // eax@16
int v4; // eax@16
int v5; // eax@16
int v6; // eax@16
int v7; // eax@16
char v8; // [sp+27h] [bp-51h]@3
signed int j; // [sp+28h] [bp-50h]@3
signed int i; // [sp+2Ch] [bp-4Ch]@1
signed int k; // [sp+2Ch] [bp-4Ch]@10
signed int l; // [sp+2Ch] [bp-4Ch]@13
char v13[8]; // [sp+70h] [bp-8h]@6
memset(byte_4164C0, 0, 0x48u);
memcpy(byte_4164C0, a2, 8u);
for ( i = 0; i <= 7; ++i )
{
v8 = byte_4164C0[i];
for ( j = 0; j <= 7; ++j )
{
*(&v13[8 * i - 64] + j) = v8 < 0;
v8 *= 2;
}
}
se que se llenan 48 bytes de 0, luego copia desde una dirección de memoria del programa, lo que sería a2, que es B1 C2 52 33 AF 8B 33 49
Y eso lo copia a 4164c0
pero no entiendo que hace en el for, en esta parte
Código:
*(&v13[8 * i - 64] + j) = v8 < 0;
v8 *= 2;
si alguien me puede orientar, se lo agradezco
gracias