手机版
  • 您还未登录,请
  • 发布时间:2023-09-30 14:16:51
    浏览 7440    回复 0
    青帝
    会员

    关于一个软件的手撕签名

    导语:点开青帝课堂进行一番研究,发现还差了一篇去签名异常的教程,没办法一般去签名都是用工具去签,但是不掌握手动去签,你的逆向终究是不完整了,那么我们本期的简单去签就开始了。

    工具:mt、np、算法助手、lsp(需配置xp环境)

    思路:通过工具去签后进入软件了,但是一会就会闪退,初步猜测dex内存在本地判断代码

    常见手动去签有:so替换签名,补0为空,dex内修改判断,结束语句,强行返回正确签名,改其正确签名为自己本身签名等等

    本次用到是最后一种改为自己的签名,有sha1值,md5值、sha256 用np查看签名就知道了

    教程开始

    前面提到了,这个软件可能是有本地判断,那么我们用算法助手抓一下前面签名,看他签名调用运用到了那些

    点开第一个,在调用堆栈里发现了调用的方法,但是不确定是简单调用查签名,还是包括验证也在里面,先复制,到dex里看看

    进来后因为这个软件代码是被混淆了,分析有点难度,先转成Java,看一下流程,在这里我们发现了一个签名sha1值,且这里具有验证(if和else)

    点开我们的np查看一下签名,图1是我们的签名,图二软件原来的签名对比,一对比我们就知道,软件本身存在的验证机制是会验证签名sha1值是否是原来的签名,如果不是就闪退

    那么此时我们思路就有了,只需在其获得sha1的代码处进行赋值,把我们自己的sha1填入进去即可

    至此,便可正常进入软件
    本期教程结束

    所有评论(0)
    请文明发表评论,恶意辱骂/诽谤,发布广告者封号处理
    反馈意见