BYTE GG_HOOK1[] = { 0xE9, 0x88, 0x00, 0x00, 0x00, 0xEB };
Utilits.SetBuffer((LPVOID)0x00501FB6, GG_HOOK1, sizeof(GG_HOOK1));
BYTE RG_HOOK1[] = { 0xE9, 0x95, 0x00, 0x00, 0x00 };
Utilits.SetBuffer((LPVOID)0x00D3E6CD, RG_HOOK1, sizeof(RG_HOOK1));
Utilits.SetByte(0x00E1F0D7, 0xEB); //RG
Utilits.SetByte(0x00E1F210, 0xEB); //RG
Utilits.SetByte(0x00501F73, 0x75); //GG
Utilits.SetByte(0x00501F73, 0x75); //GG
Utilits.SetByte(0x00506B93, 0xEB); //GG?
Utilits.SetRange((LPVOID)0x00F74BF0, 32, ASM::NOP); //MuError.log encryption
//From the main.dll
Utilits.SetOp((LPVOID)0x00F9D580, (int)sub_69D45BA0,ASM::JMP); // ResourceGuard Funtion sub_69D45BA0-> return 0; function
//My solution:
Utilits.SetRange((PVOID)0x0050868C, 5, ASM::NOP); //-> Disable ResourceGuard Call
Utilits.SetRange((PVOID)0x00D3E69E, 5, ASM::NOP); //-> Disable ResourceGuard Call
Utilits.SetRange((PVOID)0x00E1F0AC, 5, ASM::NOP); //-> Disable ResourceGuard Call
Utilits.SetRange((PVOID)0x00E1F1E5, 5, ASM::NOP); //-> Disable ResourceGuard Call
//From the main.dll
Utilits.SetOp((LPVOID)0x00587C1A, (int)sub_69D45BB0,ASM::JMP); // ???? Call sub_69D45BB0 -> return 1; function
IP:0x0183B9D8 -> "connect.muonline.co.kr"
Port: 0x0183B9DC -> HEX: 0AD75 = 44405
Version: 0x01845EA8 -> 1.19.48 - 23<8=
Serial: 0x01845EB0 -> 21Rxoph0rV1P4fWE
Utilits.SetOp((LPVOID)0x00D76110, (LPVOID)ProtocolCore, ASM::NONE); //Protocolcore
//Maybe protection moved functions offsets (Not full)
Start: 0162E5D0
End: 0162E5D0
Start: 0162E9B0
End: 0162E9EC
Start: 0162EA90
End: 0162EACC
Start: 0162EC20
End: 0162EC68
Start: 0162F158
End: 0162F1A0
Start: 0162FAE8
End: 0162FB30
Start: 0162FBA8
End: 0162FBE4
Start: 01630238
End: 01630274
Start: 016304A8
End: 016304E4
Start: 016305A0
End: 016305DC
Start: 01630650
End: 0163068C