尝试修改 AVM2 字节码时出现 VerifyError #1023
VerifyError #1023 when trying to modify AVM2 bytecodes
我正在尝试从 RABCDasm 修补 SWF 的字节码。这是我的补丁:
findpropstrict QName(PackageNamespace("flash.net"),"URLRequest")
pushstring "http://www.example.com/fake_proxied_post"
constructprop QName(PackageNamespace("flash.net"),"URLRequest"), 1
coerce QName(PackageNamespace("flash.net"),"URLRequest")
setlocal 9
getlocal 9
getlex QName(PackageNamespace("sample.loaderDanmu"),"CModule")
getlocal3
pushbyte 16
callproperty QName(PackageNamespace(""),"readString"), 2
setproperty QName(PackageNamespace(""),"data")
getlocal 9
pushstring "POST"
coerce_a
setproperty QName(PackageNamespace(""),"method")
findpropstrict QName(PackageNamespace("flash.net"),"URLLoader")
constructprop QName(PackageNamespace("flash.net"),"URLLoader"), 0
getlocal 9
callpropvoid QName(PackageNamespace(""),"load"), 1
我收到错误 VerifyError #1023 stack overflow occurred
。我的补丁有问题吗?原始 SWF 使用 FlasCC,我正在修补由 FlasCC 生成的文件。我相信 _loc3_
是一个字符串缓冲区。
我终于让它工作了。我需要扩大本地堆栈。
body
- maxstack 3
+ maxstack 4
initscopedepth 0
我正在尝试从 RABCDasm 修补 SWF 的字节码。这是我的补丁:
findpropstrict QName(PackageNamespace("flash.net"),"URLRequest")
pushstring "http://www.example.com/fake_proxied_post"
constructprop QName(PackageNamespace("flash.net"),"URLRequest"), 1
coerce QName(PackageNamespace("flash.net"),"URLRequest")
setlocal 9
getlocal 9
getlex QName(PackageNamespace("sample.loaderDanmu"),"CModule")
getlocal3
pushbyte 16
callproperty QName(PackageNamespace(""),"readString"), 2
setproperty QName(PackageNamespace(""),"data")
getlocal 9
pushstring "POST"
coerce_a
setproperty QName(PackageNamespace(""),"method")
findpropstrict QName(PackageNamespace("flash.net"),"URLLoader")
constructprop QName(PackageNamespace("flash.net"),"URLLoader"), 0
getlocal 9
callpropvoid QName(PackageNamespace(""),"load"), 1
我收到错误 VerifyError #1023 stack overflow occurred
。我的补丁有问题吗?原始 SWF 使用 FlasCC,我正在修补由 FlasCC 生成的文件。我相信 _loc3_
是一个字符串缓冲区。
我终于让它工作了。我需要扩大本地堆栈。
body
- maxstack 3
+ maxstack 4
initscopedepth 0