hzw007 发表于 2014-12-30 16:29:16

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

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

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


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



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

花墨 发表于 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

hzw007 发表于 2015-1-4 20:40:47

水波摇曳 发表于 2014-12-31 13:39
无论是那种调用方,我的看法是:
你竟然会写DEMO,那为什么不去写个直接调用startTest方法的DEMO?



很感谢NG 哥的指点,我按照你的方法试了下,对于改换图片的情况是可以的,比如显示a图片,改为本来就有的b图片,这种情况按照改字符串那样的可以,但是我试了改调用方法,这样改没有效果,目前还没有解决,还在摸索中:handshake
页: [1]
查看完整版本: 求助so里面方法调用修改 头疼了好多天