如果只是查看dex代码可以用MT管理器或jadx等等很多工具打开,但是有时候又会有需求想要修改dex中的代码并重打包,很多时候只是想改个返回值,直接返回ture,false,return,或者固定值,这里使用前辈已经造好的轮子如下,是个010Editor模板:
ca9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2K6N6$3g2W2N6s2y4U0j5i4m8W2i4K6u0W2j5$3!0E0i4K6u0r3x3o6p5H3k6h3c8A6N6r3!0J5i4K6u0r3M7X3g2H3L8%4y4A6N6r3!0J5P5g2)9J5c8Y4c8W2L8i4m8D9j5i4c8W2M7#2)9J5c8X3k6A6L8r3g2Q4y4h3k6A6L8X3k6G2i4K6u0W2M7r3S2H3i4K6y4r3k6X3W2D9k6g2)9K6c8p5c8q4h3q4)9J5k6h3u0@1i4K6t1$3j5h3#2H3i4K6y4n7N6s2W2H3k6g2)9K6c8o6m8Q4x3U0k6S2L8i4m8Q4x3@1u0K6L8%4u0@1=
运行后是这样的:
比如我想改个返回值,需要先找到对应的类,再找到对应的方法,再找到方法方法对应的Opcode,以下是列举一些比较常用的反编译后的smali代码
比如上图中 “const/4 v0, 0x1”,“const v0, 0x1”,在dex中的表现形式是不一样的,虽然都是返回1,如下图,
每个方法的前16个字节都是描述方法有几个寄存器,占用几个字节码等等,描述信息在如下注释
剩下的才是真正的方法的字节码
12 10 0F 00对应aaaaa方法
14 00 01 00 00 00 0F 00对应bbbbb方法
14 00 10 27 00 00 0F 00对应fffff方法
各种Opcode对照关系可以查看如下
960K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6v1k6i4y4#2M7@1k6J5k6h3E0W2i4K6u0r3M7$3#2S2L8r3W2Q4x3V1k6T1L8r3!0T1i4K6u0r3L8h3q4K6N6r3g2J5i4K6u0r3k6r3g2^5L8r3W2T1x3W2)9J5c8Y4y4J5j5#2)9J5c8X3#2S2K9h3&6Q4x3V1k6B7j5i4k6S2i4K6u0r3L8%4u0Y4i4K6u0r3K9X3k6Q4x3V1k6V1k6i4S2D9K9h3t1J5i4K6u0r3e0%4m8U0L8$3c8W2i4K6u0W2K9X3q4$3j5b7`.`.
传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!