Comments: I saw a flash on a website and thought it could be used as a demonstration of the lecture. I wanted to save it. I did not expect that the flash cannot be played normally after being saved. I remember san used to build a batch of New Oriental flash files when learning English, so he found the document he wrote and looked at it. This means that flash can also be decompiled. I saw a flash on a website and thought it could be used as a demonstration of the lecture, so I wanted to save it. I did not expect that the flash cannot be played normally after being saved.
I remember san used to build a batch of New Oriental flash files when learning English, so he found the document he wrote and looked at it. This means that flash can also be decompiled.
Start flash with SWF Decompiler and find that there are two actions in it to determine their location. The pseudocode is as follows: if (target. _ url. indexOf ("somenonexistenthost.com ")! =-1 | (target. _ url. indexOf ("somestrings ")! =-1 | (target. _ url. indexOf ("_ modules ")! =-1 | target. _ url. indexOf ("web187 ")! =-1 )))
{
Var _ A9 = new com. [/font] somenonexistenthost [font = ]. crypto. aso # 96727.aso# 05500 (target, pl, ci, pb, r, rp, w );
}
Else
{
Var _ l10 = _ root. attachMovie ("sorry", "sorry", 0 );
Trace (_ l10 );
_ L10. _ x = Stage. width/2;
_ L10. _ y = Stage. height/2;
} // End if
This makes it easy to understand. flash judges whether its url contains some keywords. If it does not, it enters a "sorry" process.
At that time, san used to replace the function and replace the function used to handle abnormal flows with a normal one. I think for flash on the hard disk, the so-called url should be the full path, as long as the path contains any of the above judgments, it should be able to play normally. Modify the file name to web187.swf.
Then how can we simply kill this detection and store it with any file name? I first thought of replacing the checked string with "\", because the path will certainly include this. Later I found that, as long as the length of the string changes (for example, deleting a character at the end), flash will parse the string as an empty string, indexOf ("") the result will not be-1, so that the detection can be bypassed.