ممكن شرح الكود - dani_jassm - 27-07-2021
/* This file was generated by the Hex-Rays decompiler.
Copyright (c) 2007-2020 Hex-Rays <[email protected]>
Detected compiler: Visual C++
*/
#include <windows.h>
#include <defs.h>
//-------------------------------------------------------------------------
// Function declarations
// void __usercall Init(int a1@<eax>, char a2@<dh>);
BOOL __stdcall DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved);
//----- (10001000) --------------------------------------------------------
void __usercall Init(int a1@<eax>, char a2@<dh>)
{
__outbyte(0x38u, a1);
*(_BYTE *)(a1 - 328774110) = a2;
__asm { iret }
}
// 1000100E: control flows out of bounds to 1000100F
//----- (10991E4C) --------------------------------------------------------
BOOL __stdcall DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
int v4; // edi
int v5; // esi
char *v7; // eax
int v8; // ecx
if ( (_BYTE)fdwReason == 1 )
{
v7 = (char *)DllEntryPoint + 99;
v8 = 1454;
do
{
*v7++ ^= 0xA3u;
--v8;
}
while ( v8 );
*(_BYTE *)(v5 + 40) = *(_BYTE *)(v5 + 40);
LOBYTE(_EBX) = _EBX - *(_BYTE *)(v4 + 581149603);
__asm { bound ebx, [ebx-5Dh] }
MEMORY[0x1B6EA0A3] = v7;
*(_DWORD *)v4 = *(_DWORD *)v5;
MEMORY[0x8B19A3A3] = v7;
MEMORY[0x4154A3A3] = v7;
LOBYTE(v7) = MEMORY[0xAF22286B];
MEMORY[0x66A0A3A3] = v7;
__asm { rep retf }
}
return 1;
}
// 10991ED9: control flows out of bounds to 10991EDC
// 10991EB3: variable 'v5' is possibly undefined
// 10991EB6: variable '_EBX' is possibly undefined
// 10991EB6: variable 'v4' is possibly undefined
// nfuncs=2 queued=2 decompiled=2 lumina nreq=0 worse=0 better=0
// ALL OK, 2 function(s) have been successfully decompiled
RE: ممكن شرح الكود - aijundi - 27-07-2021
يبدو أن جزء من الدالة تم تشفيره بعملية xor مع A3، من البايت رقم 99 إلى 1553. يقوم الجزء الأول (من البداية إلى عند while) بفك التشفير. تحتاج إلى عمل decompile بعد أن يتم فك التشفير لتحصل على بقية الكود الصحيحة.
RE: ممكن شرح الكود - dani_jassm - 27-07-2021
اشكرا على الجابه ممكن تزودني بـ معلومات اكثر
|