尝试修改AVM2字节码时验证错误#1023

时间:2016-02-25 12:46:04

标签: avm2

我试图从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_是一个字符串缓冲区。

1 个答案:

答案 0 :(得分:0)

最后我开始工作了。我需要加强本地堆栈。

   body
-  maxstack 3
+  maxstack 4
   initscopedepth 0