首页
社区
课程
招聘
[求助]好了我来问一下arm汇编的事情
2021-5-16 01:01 3464

[求助]好了我来问一下arm汇编的事情

2021-5-16 01:01
3464


这里汇编导入了一个c函数
extern "C" JNIEXPORT int32_t JNICALL mod_for_asm(int32_t num, int32_t mod)

 

然后掉这个函数的时候使用blx mod_for_asm就会异常,但是bl就可以调用...

 

使用
ldr r2,=mod_for_asm
blx r2
会编译错误,具体错误如下
warning: shared library text segment is not shareable
error: treating warnings as errors
百度查了一下,是因为安卓高版本禁止重定位

 

现在问题来了

 

这是什么问题??
阿巴 阿巴

 

顺便伸手安卓方面的arm汇编资料


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞1
打赏
分享
最新回复 (6)
雪    币: 6
活跃值: (1292)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
雨之后 2021-5-16 01:12
2
0
另外调用约定还是比较迷糊
调用者恢复堆栈,保存使用的寄存器,
被调用者保护fp寄存器??
雪    币: 6
活跃值: (1292)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
雨之后 2021-5-16 14:12
3
0
1
雪    币: 271
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
Anhanguera 2021-5-16 21:32
4
0
blx是跳转到thumb指令,保存和恢复都是由被调用的函数的做的吧
雪    币: 6
活跃值: (1292)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
雨之后 2021-5-16 22:22
5
0
Anhanguera blx是跳转到thumb指令,保存和恢复都是由被调用的函数的做的吧
我看反汇编好像只有fp寄存器被调用者保存并恢复了,参数的栈是调用者恢复。。。
雪    币: 62
活跃值: (572)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
万里星河 2021-5-17 10:23
6
0
为啥都能 bl mod_for_asm
为何不直接 blx mod_for_asm呢
偏要拿r2寄存器中转一下 会不会是r2中转的操作出了问题
雪    币: 6
活跃值: (1292)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
雨之后 2021-5-17 21:35
7
0
万里星河 为啥都能 bl mod_for_asm 为何不直接 blx mod_for_asm呢 偏要拿r2寄存器中转一下 会不会是r2中转的操作出了问题
blx mod_for_asm会报错 异常
游客
登录 | 注册 方可回帖
返回