将smali代码插入Java应用程序

时间:2018-08-06 09:15:14

标签: java android smali

我反编译了apk文件,并得到了java代码:

private long compressAndFormat(byte[] tokenData) {
        long result = 0;
        int i = 0;
        while (true) {
            try {
                if (i >= this.ipb.length) {
                    return result >> 1;
                }
                int bit;
                while (bit >= 0) {
                    byte mask = (byte) (1 << bit);
                    if ((this.ipb[i] & mask) != 0) {
                        if ((tokenData[i] & mask) != 0) {
                            result |= 1;
                        }
                        result <<= 1;
                    }
                    bit--;
                }
                i++;
            } finally {
                result = 0;
            }
        }
    }

您可以看到bit尚未初始化。无论我如何初始化,它都会给我错误的结果。我也试图猜测那是什么意思。我试图计算写tokenData[i]号所需的位数。这些想法都没有。

我找到了另一个解决方案-我将apk反编译为smali代码,剪切了该方法,然后粘贴到另一个apk应用程序中。那工作正常。从apkjava的反编译似乎出错了,并且使用像smali这样的低级编程语言解决了我的问题。

现在,我想使用该方法创建java控制台应用程序。到目前为止,我一直在使用apk该怎么做?看来smaliapk文件有关。我该怎么办?

这是方法smali的{​​{1}}代码。也许你们中的一些人看到了为什么它被严重反编译了?

compressAndFormat

0 个答案:

没有答案