»jD« way
My way (probably worse, but if BP will change something in main.swf encoding you can use this one)
Code:
byte[] mainswf = File.ReadAllBytes(args[0]);
uint start = (uint)(mainswf[0] ^ 0x43) - 1;
for (int i = 0; i < mainswf.Length; i++)
{
mainswf[i] ^= (byte)++start;
}
File.WriteAllBytes(args[0], mainswf);
My way (probably worse, but if BP will change something in main.swf encoding you can use this one)
Resources
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
What we need to know?
Example swf file.
How to get DarkOrbit client
[Only registered and activated users can see links. Click Here To Register...]
Regards, Sekhmet
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
What we need to know?
Example swf file.
| Byte number | Field name | Type | Value[dec - hex] | Explanation |
|---|---|---|---|---|
| 0 | Signature | uint8 | F - 0x46 | Look at SWF File format specification |
| 1 | Signature | uint8 | W - 0x57 | always "W" |
| 2 | Signature | uint8 | S - 0x53 | always "S" |
| 3 | Version | uint8 | 11 - 0x17 | Version |
| 4 | File length | uint32 | 6029338(bytes) - 0x00 0x5C 0x00 0x1A | For example if you've found 1A 00 5C 00 invert it to 005C001A and convert to decimal. It's file size in bytes(will return true value only if it's uncompressed file(first byte equals "F"), if file is compressed it contains size of uncompressed file. |
How to get DarkOrbit client
- Open HxD
- Open FlashPlayer process(I prefer do it on Mozilla - on chrome it's difficult to find correct process)
- Look for FWS header
- Check size of every found file in memory(you don't needa check all files - if file is very small - ignore it, 7.8.8 file weighed 5Mb+)
- If you found probably correct file click PPM on first byte of file, click Select block, change values to dec and in length paste converted to dec file size.
- Copy all selection in byte(left) panel.
- Click Ctrl + N
- Paste copied bytes to left panel
- Save it
- Decompile it(cause it has FWS header, which isn't supported in many decompilers use JPEXS Flash Decompiler
- Deobfucate client by clicking Tools > Deobfuscation > Reneme invalid identifers
[Only registered and activated users can see links. Click Here To Register...]
Regards, Sekhmet