关于一个软件的手撕签名

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

图片[1]-关于一个软件的手撕签名-可能资源网


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

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

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

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

教程开始

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

图片[2]-关于一个软件的手撕签名-可能资源网

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

图片[3]-关于一个软件的手撕签名-可能资源网


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

图片[4]-关于一个软件的手撕签名-可能资源网


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

图片[5]-关于一个软件的手撕签名-可能资源网

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

图片[6]-关于一个软件的手撕签名-可能资源网

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

THE END
抢沙发

请登录后发表评论

    暂无评论内容