Quote:
Originally Posted by jasty
I wouldn't I am just trying to reclaim 2 plat charms I accidentally equipped on my catshops lol. Being able to unequip charms outside of TW would be pretty useful as well though my charm doesn't tick much these days in PVE... I have much better ways to make money than to rip off catshops but I really hate seeing those plat charms equipped on mine.
How do you find the right packet? Is it with a packet sniffer?
|
Set a breakpoint on the sendPacket function (0x660130) and check what variables are passed. (packetLength at [ESP + 8] and packet at [[ESP + 4] + 0])
In MHS you could use this script for example on the breakpoint:
Code:
void On_BP_1(LPVOID lpvAddress, LPPROC_INFO_MHS lpProcInfo)
{
DWORD pktSize_ptr = lpProcInfo->pcContext->Esp+8;
DWORD pktSize = 0;
ReadProcessMemory(lpProcInfo->hProcess, (void *)pktSize_ptr, &pktSize, 4, NULL);
DWORD pkt_ptr_ptr = lpProcInfo->pcContext->Esp+4;
DWORD pkt_ptr = 0;
BYTE bp_newpacket[255] = {0};
char bp_packet[1024] = {0};
ReadProcessMemory(lpProcInfo->hProcess, (void *)pkt_ptr_ptr, &pkt_ptr, 4, NULL);
ReadProcessMemory(lpProcInfo->hProcess, (void *)pkt_ptr, &bp_newpacket, pktSize, NULL);
for (int i = 0; i < pktSize; i++){
SPrintF(&bp_packet[i*3], "%02X ", bp_newpacket[i]);
}
DWORD callingFunctionAddress = 0;
DWORD callingfunctionAddress_ptr = lpProcInfo->pcContext->Esp;
ReadProcessMemory(lpProcInfo->hProcess, (void *)callingfunctionAddress_ptr, &callingFunctionAddress, 4, NULL);
PrintF("[%08X] Packet: %s",callingFunctionAddress, bp_packet);
}