酷安 应用市场 去除签名校验方案 非一键hook so的2种改法

查看 131|回复 11
作者:芽衣   
是时候水一下帖子了
酷安应用市场是有广告的,去除广告或者布局就要先对app去除签名校验,比如mt一键。但是基本上都用了一键功能,没人说怎么直接改app。
手动修改的话smali是没戏了,我试过,返回的字符串不知道是什么,所以只能修改so达到去除签名校验的目的,软件样品为当前最新版。
准备工具:
1、NP管理器
2、16进制编辑器
3、IDA



1.png (77.93 KB, 下载次数: 0)
下载附件
2020-9-26 09:43 上传



1.png (23.86 KB, 下载次数: 0)
下载附件
2020-9-26 10:14 上传

重签名后软件出现了喜闻乐见的提示,搜索一下关键字,发现有2个目标,第一个肯定不是,那个应该是视频解码器,用于播放各种推广视频或者用户上传的视频。现在来看第二个,拖进IDA分析。
先介绍第一种比较容易上手的改法,这个方法的缺点是别人可以随意二改你的成品,不需要拦截原签名,比如加个引流弹窗,入群收费等。
加载so完毕后打开输出窗口,定位到【
checkSignature
(_JNIEnv *,_jobject *,_jstring *)】,双击进去,然后拉到后面。


1.png (61.85 KB, 下载次数: 0)
下载附件
2020-9-26 10:24 上传

如上图,strcmp指令为比较字符串,应该是比较签名Base64。r0为获取到的签名值,如果和so储存的不一样就会出现上面的问题。所以第一种改法就是让so无论如何都输出正确的数值。
定位到指令
LSRS            R0, R0, #5
,改成
MOVS            R0, #1
(0120)。


1.png (34.81 KB, 下载次数: 0)
下载附件
2020-9-26 10:43 上传

如上图,改了之后放回去测试可正常运行。

第二种改法就比较麻烦,好处就是别人需要拦截签名才能修改。当然一键的东西不算麻烦
既然so是比较字符串,把so的值改成你自己的签名值就好了。
原签名值为:
[ol]
  • 30820259308201c2a00302010202045044cd17300d06092a864886f70d01010505003071310b300906035504061302434e310f300d06035504080c06e58c97e4baac310f300d06035504070c06e58c97e4baac31143012060355040a130b436f6f6c41706b2e636f6d31143012060355040b130b436f6f6c41706b2e636f6d311430120603550403130b436f6f6c41706b2e636f6d301e170d3132303930333135333033315a170d3430303132303135333033315a3071310b300906035504061302434e310f300d06035504080c06e58c97e4baac310f300d06035504070c06e58c97e4baac31143012060355040a130b436f6f6c41706b2e636f6d31143012060355040b130b436f6f6c41706b2e636f6d311430120603550403130b436f6f6c41706b2e636f6d30819f300d06092a864886f70d010101050003818d0030818902818100b1441c2288e4de72d2c7e81a3ab29e2e63ca3ad271636dfdac60eb9c0d5b4b67ed6be9d236bc49087c1c207b4bdcd1fc6150198fbdf3f882c04c8415d953508ea117cb1eaf3f06fc7f55086dc125ad477ebd7db98fd9769934915b72aaaf1276b1fcd7b5f7f779c3b2ebc4b701781f4d00810bd57ace023c7cab757314184f2d0203010001300d06092a864886f70d01010505000381810066e7f8317544e55b4b606bb00426179d0bdee1d865920abd39bf6273e369b15a53efe96a745d0b53051805d15af7bb8d59b87d5dfc6cb1f0afeecce2d12c8c3612b9c2479188db38a8026092f71ddc1ec67c5b312ea1ff78053901bd0dcf1c2282748a657f110e7dac40575e9547c5d2383de10d618f981b419fbefddec4b240[/ol]复制代码
    重签名后用NP管理器查看签名值,复制下来。so用010Editor打开,直接搜索定位,然后把复制下来的签名值粘贴下去,余下的用00填充。


    1.png (55.28 KB, 下载次数: 0)
    下载附件
    2020-9-26 10:54 上传

    这样就能保证签名前后对比一致了。


    1.png (157.71 KB, 下载次数: 0)
    下载附件
    2020-9-26 10:55 上传

    下载次数, 上传

  • 大王品美人   

    方案一:
    定位到指令LSRS            R0, R0, #5
    改成           MOVS            R0, #1(0120)。
    能否说个操作细节?菜鸟求教。
    芽衣
    OP
      


    yiwai2012 发表于 2020-9-29 15:18
    这不科学吧 那是比原版签名短 填充 要是比原版签名长呢?

    自定义签名不写那么多信息就行。要是比原来的长先找个空白地址填下去,写个函数,把目标地址复制过来。要写复制汇编的
    老婆是加藤惠   

    沙发有吗
    小小k   

    设置进实验室,可以关闭开屏广告
    x2005y   

    谢谢分享!!
    永不--放弃   

    正需要这个,多谢了!!!!
    ajie2176   

    谢谢楼主分享
    flow_one   

    感谢分享~~~
    heikis   

    哈哈哈.  酷友~~~
    您需要登录后才可以回帖 登录 | 立即注册