我是新手,仍在学习汇编语言。在已反汇编的本机 android 应用程序库中,我发现此函数有 1 条指令。
addres hex arm instruction function
2cc3ad 71704708 stmdaeq r7, {r0, r4, r5, r6, ip, sp, lr} ^ function0(unsigned char)
我在文章中读到用于调用函数的参数分别存储在 r0、r1 和 r2 上。我想将 200 添加到寄存器 r0 中,以便指令可以将值存储到这些寄存器引用的内存中。所以我在地址 2cc3ad 处插入了 aa mov 指令的十六进制值,以便在十六进制编辑器中它看起来像这样。
mov ro, #200
是C800A0E3
十六进制的。
address Hex Instruction
2cc3ad C800A0E3 mov ro, #200
2cc3b1 71704708 stmdaeq r7, {r0, r4, r5, r6, ip, sp, lr} ^
编辑并添加这些字节后,我保存到文件中。在使用编辑后的库之前,我尝试重新组装它,但反汇编程序以及使用该库的应用程序都出现错误。根据我的理解,通过将该字节添加到库中,我破坏了整个文件。有没有一种方法或指令可以用来将某个值分配给 r0 或将该值存储到该函数中那些寄存器引用的内存中,而无需修改整个库?