【问题标题】:Can i modify the previously created .so file using android NDK?我可以使用 android NDK 修改之前创建的 .so 文件吗?
【发布时间】:2012-07-17 07:44:08
【问题描述】:

目前我刚开始使用 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

【问题讨论】:

  • 你有.so的源代码吗?
  • 如果你没有来源,那么:stackoverflow.com/questions/2306972/…
  • 实际上我所拥有的来源可能有所不同。 .so 文件是使用大量 .c 和 .h 文件构建的
  • @Mighter 谢谢让我检查一下它是否适合我

标签: android android-ndk


【解决方案1】:

您不能直接更改 .so 文件。但是,您可以更改源代码(C 或 C++)并使用 NDK 重新编译它。但是,如果您无法访问源代码,那么您的机会就相当渺茫了。

你也许可以反编译/反汇编.so,但如果不是不可能的话,将它重新编译回.so将被证明是极其困难的

【讨论】:

  • 我有源代码,但问题是我拥有的源代码与用于构建该库文件的源代码有些不同。所以很难再次分析和重新编译。
  • 我想我应该先尝试反汇编。
  • 那么您能做的最好的事情就是从您拥有的资源开始,并尝试获得您需要的功能。不幸的是,您将无法反编译 .so
  • @juned 试试看。你的汇编语言有多好?
  • 不太好,我刚在大学里把这门语言作为一门学科学习。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 2021-05-18
  • 2023-04-02
  • 2016-08-17
  • 1970-01-01
相关资源
最近更新 更多