目前我刚开始使用NDK,现在我脑子里有一些问题。
无论如何使用NDK修改以前创建的.so文件?我们可以修改那个.so文件吗?我只是想改变一些规范并希望重建。
任何帮助和建议将不胜感激。
提前致谢
修改
000064e0 <Pow2>:
64e0: e260201e rsb r2, r0, #30 ; 0x1e
64e4: e1a02802 lsl r2, r2, #16
64e8: e3a00001 mov r0, #1 ; 0x1
64ec: e1a02842 asr r2, r2, #16
64f0: e2423001 sub r3, r2, #1 ; 0x1
64f4: e1a00310 lsl r0, r0, r3
64f8: e59f3054 ldr r3, [pc, #84] ; 6554 <Pow2+0x74>
64fc: e59fc054 ldr ip, [pc, #84] ; 6558 <Pow2+0x78>
6500: e1a01301 lsl r1, r1, #6
6504: e08f3003 add r3, pc, r3
6508: e92d0030 push {r4, r5}
650c: e793c00c ldr ip, [r3, ip]
6510: e201481f and r4, r1, #2031616 ; 0x1f0000
6514: e1a04844 asr r4, r4, #16
6518: e08c5084 add r5, ip, r4, lsl #1
651c: e1a04084 lsl r4, r4, #1
6520: e19cc0b4 ldrh ip, [ip, r4]
6524: e1d540b2 ldrh r4, [r5, #2]
6528: e3e05902 mvn r5, #32768 ; 0x8000
652c: e00510c1 and r1, r5, r1, asr #1
6530: e080080c add r0, r0, ip, lsl #16
6534: e064c00c rsb ip, r4, ip
6538: e161018c smulbb r1, ip, r1
653c: e0400081 sub r0, r0, r1, lsl #1
6540: e1a00250 asr r0, r0, r2
6544: e1a00800 lsl r0, r0, #16
6548: e1a00840 asr r0, r0, #16
654c: e8bd0030 pop {r4, r5}
6550: e12fff1e bx lr
6554: 0000abcc .word 0x0000abcc
6558: 00000078 .word 0x00000078
答案 0 :(得分:1)
您无法直接更改.so文件。但是,您可以更改源代码(使用C或C ++)并使用NDK重新编译它。但是,如果您无法访问该来源,则您的机会相当渺茫。
您可以对.so进行反编译/反汇编,但如果不是不可能将其重新编译回.so
将会非常困难。