Quote:
Originally Posted by bheaven
i experienced a little problem while loading isro112 (unpacked):
it patches the security seed at address 0x49111E instead of 0x491D1E.
seems as if the sig for that is not working really.
would it be possible to get the address of the CoCreateGuid function and then use the offset to this address as well in the sig (since this func is called right before the current signature start).
|
Which unpacked client are you using?
I already posted the one I had made using an OllyDbgScript and it's detecting it right:
[Only registered and activated users can see links. Click Here To Register...]
I've not had any problems on any other Silkroad versions myself, so I'm fairly confident the signature itself is fine. I've used the same signature for years in my edx33/sr33 hooks as well and never a problem either.
If you look at the patch itself, it's really simple:
Code:
// Security seed fix
if(bDoSecuritySeed)
{
do
{
BYTE securitySeedSig[] =
{
0x8B, 0x4C, 0x24, 0x04, 0x81, 0xE1, 0xFF, 0xFF,
0xFF, 0x7F
};
results = FindSignature(securitySeedSig, 0, sizeof(securitySeedSig), pMappedFileBase, size);
if(results.size() != 1)
{
printf("%i results were returned. Only %i were expected. Please use an updated signature.\n", results.size(), 1);
break;
}
DWORD secSeedAddr = (DWORD)(dwImageBase + results[0] + dwCodeOffset);
printf("secSeedAddr: 0x%X\n", secSeedAddr);
BYTE patch1[] = {0xB9, 0x33, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x90};
WriteBytes(secSeedAddr, patch1, sizeof(patch1));
printf("\n");
} while(false);
}
If you upload your client I'll take a look at it though. That address you are getting shows that something is wrong, maybe a bug in my code elsewhere. Thanks if you can upload it.