zoukankan      html  css  js  c++  java
  • 安卓逆向从入门到入土之突破签名验证

    最近在跟着网上的教程学习android逆向,就用教程里的demo,跟着教程研究一下demo中的签名验证,操练起来~。

    反编译之,可以看出签名验证check函数写在libJniTest.so中:

     IDA打开libJniTest.so,找到check函数,双击查看check方法:

    看到中文乱码。通过alt+a设置编码

    获取签名后判断,不正确则执行loc_F62,程序退出:

    转换为图形视图,会更直观:

    判断签名,签名正确通过BNE跳转到左侧视图 ,em...有必要查一波BNE跳转指令:

    所以要想让程序在签名错误的情况下执行,就需要让R0=0的情况下跳转,所以可以使用BEQ指令:

    可以查看到BEQ的十六进制为D0,所以我们十六进制编辑BNE的D1,改为D0:

    可以看到指令已经被修改为BEQ:

    保存修改,重新编译apk文件即可。

    PS:1,F5无法查看源代码除了程序有静态分析保护外,建议使用32位IDA,64位无法使用F5;2,重新编译报错可能是apktool的问题。

      over~

  • 相关阅读:
    路由
    客户端如何调用
    第一个简单的DEMO
    Web API初印象
    项目开发中经常使用的缓存
    EF的Model First
    如何计算代码的运行性能
    使用Obsolete特性来标记方法过时或弃用
    nodeJs实现文件上传,下载,删除
    node 部署教程二
  • 原文地址:https://www.cnblogs.com/2rsh0u/p/10710119.html
Copyright © 2011-2022 走看看