maoabc / nmmp

dex-vm used to protect the android classes.dex file
781 stars 269 forks source link

这里提一个测试bug(很棒,简单改一下在windows上使用了) #3

Closed githubXiaowangzi closed 3 years ago

githubXiaowangzi commented 3 years ago

个别APP全部native后,使用APP时个别操作会异常闪退 如出现如下错误,apk下载地址:https://wwi.lanzoui.com/irqGTpi3fja

java.lang.ExceptionInInitializerError at org.jf.smali.Smali.assembleSmaliFile(Native Method) at org.jf.smali.Smali.assembleSmaliFile(Native Method) at com.signs.yowal.SignatureTool.processDex(Native Method) at com.signs.yowal.SignatureTool.Kill(Native Method) at com.signs.yowal.MainActivity$100000002.run(Native Method) Caused by: java.lang.StringIndexOutOfBoundsException: length=1; index=1 at java.lang.String.charAt(Native Method) at org.jf.smali.smaliFlexLexer.zzUnpackAction(Native Method) at org.jf.smali.smaliFlexLexer.zzUnpackAction(Native Method) at org.jf.smali.smaliFlexLexer.(Unknown Source:54) ... 5 more java.lang.StringIndexOutOfBoundsException: length=1; index=1 at java.lang.String.charAt(Native Method) at org.jf.smali.smaliFlexLexer.zzUnpackAction(Native Method) at org.jf.smali.smaliFlexLexer.zzUnpackAction(Native Method) at org.jf.smali.smaliFlexLexer.(Unknown Source:54) at org.jf.smali.Smali.assembleSmaliFile(Native Method) at org.jf.smali.Smali.assembleSmaliFile(Native Method) at com.signs.yowal.SignatureTool.processDex(Native Method) at com.signs.yowal.SignatureTool.Kill(Native Method) at com.signs.yowal.MainActivity$100000002.run(Native Method)

maoabc commented 3 years ago

嗯,我看看

githubXiaowangzi commented 3 years ago

原app地址:https://wwi.lanzoui.com/i3a3bpidamd

maoabc commented 3 years ago

修复了,你试试,应该没问题了。

maoabc commented 3 years ago

因为原来的 ZZ_ACTION_PACKED_0 = "\10\0\1\1\1\2\2\3\1\2\4\3\1\4\2\1";第二个字符为\0,如果按utf-8处理会被认为字符串被终止了, 需要使用modified utf-8 把\0用0xc0和0x80代替,而且NewStringUTF也是接收modified utf8的。

maoabc commented 3 years ago

用原apk测试下,发现引起其他问题了,我再去找下原因

githubXiaowangzi commented 3 years ago

测试了一下,除了速度变慢了一拍,应该没啥大问题了