发新帖

求助so里面方法调用修改 头疼了好多天

[复制链接]
21339 5
40NB
在下承蒙各位大神的指点,一点点儿走在逆向的路上。。。。。。困难不少,但慢慢进步也挺充实,近日遇到一个让我很郁闷的问题,不解决很不甘心,在so里面我想改变一个按钮的点击事件,我自己写demo做实验,以为能和smali里面一样,一对比就知道怎么修改,哎!so不愧是so,大神们果然是大神,小弟的水平实在咬不动,还望各位大神指点一下

   
原apk 点击New Game 按钮调用testABC方法直接进入游戏,现在想改成调用so里面有的startTest方法达到弹出对话框的效果如下
  希望通过改调用不同的方法实现


下面是so里面调用testABC的地方



demo Apk 地址:http://pan.baidu.com/s/1c090R1u

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

举报 使用道具

回复

精彩评论5

花墨    发表于 2014-12-30 16:37:02 | 显示全部楼层
@水波摇曳  ,,来看看

举报 使用道具

回复
peterdocter    发表于 2014-12-31 10:52:10 | 显示全部楼层
本帖最后由 peterdocter 于 2014-12-31 10:54 编辑

是群中娱吧???!!!你都问很久。。。
原apk 点击New Game 按钮调用testABC方法直接进入游戏
现在想改成调用so里面有的startTest方法

这样的说,没有把问题说明。。。
startTest本身是可以JNI自定义函数吗?如果不是java如何去调用它?
testABC这函数方法,现在还要不要?
方案A:
startTest是JNI函数,直接去修改smali中的testABC调试为startTest就行。。。
方案B:
testABC不要了,而且startTest不是JNI定义函数直接在testABC里面修改成 BL startTest不就行了。。。
方案C:
startTest中的汇编内容替换到testABC中。。。。

举报 使用道具

回复
水波摇曳    发表于 2014-12-31 13:34:41 | 显示全部楼层
peterdocter 发表于 2014-12-31 10:52
是群中娱吧???!!!你都问很久。。。
原apk 点击New Game 按钮调用testABC方法直接进入游戏
现在想改成 ...

赞一个皮特陈老哥的回答

举报 使用道具

回复
水波摇曳    发表于 2014-12-31 13:39:52 | 显示全部楼层
本帖最后由 水波摇曳 于 2014-12-31 14:39 编辑

无论是那种调用方,我的看法是:
你竟然会写DEMO,那为什么不去写个直接调用startTest方法的DEMO?

然后把两者对比一下就行了嘛
注意比较的地方可以有:
1、用WinHex打开so,两个方法的字符串偏移地址;
2、注意下面的那个地址指针:

3、把两个的相减,看看得到的进制串

可以参考:
http://blog.csdn.net/zihao2012/article/details/41213227
可以不一样,一个是方法名 一个是字符串,
so修改我也不会 说错的,大家指出来啊 :L

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复
hzw007    发表于 2015-1-4 20:40:47 | 显示全部楼层
水波摇曳 发表于 2014-12-31 13:39
无论是那种调用方,我的看法是:
你竟然会写DEMO,那为什么不去写个直接调用startTest方法的DEMO?

很感谢NG 哥的指点,我按照你的方法试了下,对于改换图片的情况是可以的,比如显示a图片,改为本来就有的b图片,这种情况按照改字符串那样的可以,但是我试了改调用方法,这样改没有效果,目前还没有解决,还在摸索中:handshake

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表