I've been hella busy lately, some guy asked me about handling messages in client-side like a week ago, I told 'em I'll make a guide and I totally got busy & forgot.
Anyways, lets get into this.
Note: Structures don't really have to be 100% correct, that's just analyzing & guesses.
How To Hook State Process: Since OnPacketRecv is a virtual function, its a different function with a different address per state process.
The main place where OnPacketRecv is called should be at:
Code:
00BA8FB1 | FF D0 | call eax | OnPacketRecv
So basically, you can set a breakpoint there in different state processes & get the address of the function.
For example, I want the address of CPSTitle::OnPacketRecv, so I set a breakpoint on that address above during login section, when the breakpoint hits, get the value of EAX, thats your function address.
I made an example as for CPSMission, which handles msgs after selecting your character.
int CPSMission::OnPacketRecv(CMsgStreamBuffer* MsgBuffer) { if (MsgBuffer->msgid() == 0xB070)//Show Form { int FormID = 5004; byte ShowHide = -1; *MsgBuffer >> FormID >> ShowHide;
if (FormID != 0 ) { g_pCGInterface->m_IRM.GetResObj(FormID, 1)->ShowGWnd(true); }
MsgBuffer->FlushRemaining(); } //Returning 1 means packet is accepted & read, 0 means fail & afair client may crash if you do return 0 //Also, if you're planning to read original packets, set TotalReadBytes to 0 after you finish reading, because sro_client will re-read this stuff and if any byte were read before, it'll crash because it attempts to read over max bytes limit. return reinterpret_cast<int(__thiscall*)(CPSMission*, CMsgStreamBuffer*)>(0x0084CAB0)(this, MsgBuffer); }
florian0 he told me to need a vftable hook. but I don't know where to get the vftable hook. Can you guide me to hook it.
thank you for sharing
my discord : Thaidu0ngpr0#3327
How To Hook State Process: Since OnPacketRecv is a virtual function, its a different function with a different address per state process.
The main place where OnPacketRecv is called should be at:
Code:
00BA8FB1 | FF D0 | call eax | OnPacketRecv
So basically, you can set a breakpoint there in different state processes & get the address of the function.
For example, I want the address of CPSTitle::OnPacketRecv, so I set a breakpoint on that address above during login section, when the breakpoint hits, get the value of EAX, thats your function address.
I've been hella busy lately, some guy asked me about handling messages in client-side like a week ago, I told 'em I'll make a guide and I totally got busy & forgot.
Anyways, lets get into this.
Note: Structures don't really have to be 100% correct, that's just analyzing & guesses.
How To Hook State Process: Since OnPacketRecv is a virtual function, its a different function with a different address per state process.
The main place where OnPacketRecv is called should be at:
Code:
00BA8FB1 | FF D0 | call eax | OnPacketRecv
So basically, you can set a breakpoint there in different state processes & get the address of the function.
For example, I want the address of CPSTitle::OnPacketRecv, so I set a breakpoint on that address above during login section, when the breakpoint hits, get the value of EAX, thats your function address.
I made an example as for CPSMission, which handles msgs after selecting your character.
Any legit networking site here ? 12/13/2017 - Cryptocurrencies - 1 Replies Permision to post admin im just asking here if they got legit networking site TIA
Mit Process Explorer /Process Hacker Hs umgehen 05/22/2010 - General Gaming Discussion - 1 Replies Ich habe hier im Forum gelesen, das man mit Process Explorer bzw. Process Hacker das HS umgehen kann. Leider ist mir irgendwie schleierhaft wie das gehen soll. Vllt erbarmt sich jemand und erklärt es (:, da man den sogenannten Bypasser nur noch las Premium Dings Da bei Upload.to runterladen kann :rolleyes:
C# how to pause a process/freeze process 12/08/2008 - CO2 Programming - 2 Replies ya so i was semi bored and after little bit of looking around i didnt find to many examples of how to do this so attached is a demo project to show you how.
basically it comes down to calling ResumeThread() and SuspendThread() (API functions) on all the threads of a process...simple enough
http://img388.imageshack.us/img388/9762/exampleil 6.png
please note when you enter the process name there's no ".exe" to the end
Warning: this isn't idiot proof
.
.