首页 > 其他分享 >【APP逆向05】Hook小案例

【APP逆向05】Hook小案例

时间:2024-01-14 22:56:18浏览次数:19  
标签:hook APP 05 Hook script 参数 message ###

  • 前言
    当我们通过抓包找到需要解密或者解密的参数后,然后反编译APP,找到对应的加解密方法,但是我们不确定找到的方法是不是就是参数加解密的地方,这个时候我们就需要使用hook来确定了

  • 需求:逆向某APP的密码

    • 1.通过抓包,找到加解密参数;
    • 2.反编译APP,找到加密参数的大概位置


    • 3.此时我们找到的密码解密的地方,但是不确定
    • 4.hook该函数
import frida
import sys

### 以后这个代码不需要动### ### ###
rdev = frida.get_remote_device()
session = rdev.attach("app_name")  # 写上要hook的app的名字
### 以后这个代码不需要动### ###


# 要改动的地方,js语法
scr = """
Java.perform(function () {
    //找到类 反编译的首行+类名:com.autohome.ahkit.utils下的
    var SecurityUtil = Java.use("com.autohome.ahkit.utils.SecurityUtil");

    //替换类中的方法,方法有几个参数,就要传几个参数
    SecurityUtil.encodeMD5.implementation = function(str){
        console.log("参数:",str); // 传入的参数打印了,我们猜是明文密码
        var res = this.encodeMD5(str); //调用原来的函数
        console.log("返回值:",res);  // 打印出正常执行这个方法,返回的结果
        return str; // 通过hook技术--》把传入的明文,直接返回--》抓包抓到的密码就是明文
    }
});
"""

####下面代码完全不需要动
script = session.create_script(scr)
def on_message(message, data):
    print(message, data)

script.on("message", on_message)
script.load()
sys.stdin.read()
  • 5.hook步骤
    • 5.1:手机端启动frida_server
    • 5.2: 设置端口转发
    • 5.3 :执行hook代码,手机端点击APP登录按钮。此时我们查看返回值与抓包的密码是否一致

    • 5.4 :此时我们可以确定,密码的加密逻辑就是我们找到的encodeMD5方法
  • 6.使用python代码复现
import hashlib
m = hashlib.md5()
m.update('helloworld'.encode("utf8"))
print(m.hexdigest())

标签:hook,APP,05,Hook,script,参数,message,###
From: https://www.cnblogs.com/xwltest/p/17964368

相关文章

  • 初中英语优秀范文100篇-058The Importance of Doing Sports-做运动的重要性
    PDF格式公众号回复关键字:SHCZFW058记忆树1Nowadays,moreandmorepeopleprefertostayathomewatchingTVandsurfingtheInternet,whichleadstofatnessandevenseriousillness.翻译如今,越来越多的人更喜欢待在家里看电视和上网,这导致了肥胖,甚至严重的疾病......
  • uni-app实现生成海报
    示例图:文献参考:参考文档:https://zhuanlan.zhihu.com/p/597629702uni-app官网:uni.createSelectorQuery()|uni-app官网微信小程序官网:canvas|微信开放文档海报内容准备:1、背景图片2、二维码3、用户头像,用户名称4、简短的描述文案PS:1、若使用<canvastype="2d"id="......
  • app.UseAuthentication()、app.UseAuthorization() 及其它
    首先,这两段代码拼写就比较容易混淆,一个是UseAuthentication,一个是UseAuthorization,很容易看混。app.UseAuthentication(); 这个方法代表"认证"中间件的添加,这个中间件负责对来自客户端的请求进行认证,也就是说,它会把请求中包含的用户信息(比如一个cookie或者token)解释出来,然后构......
  • uni-app中的推送
    需求:最近公司要做推送,用的是uni-app,这里备注一下 App.vue里这样操作:分别是iOS和Android的在线创建推送,以及点击事件的处理,这里点击事件存储一下,然后发送消息在首页处理推送。如果在这里处理,会有先跳转推送页再返回首页的问题。plus.push.addEventListener('click',fu......
  • uniapp的video组件在层级太高,无法遮挡的问题
    uniapp-vue项目中需要播放视频,uniapp的video组件在层级太高,无法遮挡,所以使用原生dom的video标签在APP中播放视频,可以被其他元素进行覆盖、遮挡,页面具有更高的定制性<!--eslint-disable--><template><viewv-html="videoHtml"id="dom-video"class="dom-video......
  • React-hook-form-mui(一):基本使用
    前言在项目开发中,我们选择了React+MUI作为技术栈。在使用MUI构建form表单时,我们发现并没有与antd类似的表单验证功能,于是我们选择了MUI推荐使用的react-hook-form-mui库去进行验证。但是发现网上关于这个库的使用方法和demo比较少且比较简单,并没有复杂的表单验证的demo。因此本文及......
  • 初中英语优秀范文100篇-057My Favourite Story-我最喜欢的故事
    初中英语优秀范文100篇-057MyFavouriteStory-我最喜欢的故事PDF格式公众号回复关键字:SHCZFW057记忆树1MyfavoritestoryisTheNightoftheHorse.翻译我最喜欢的故事是《马之夜》简化记忆故事句子结构主语:Myfavoritestory主语是一个名词短语,由形容词"fav......
  • Azure Logic Apps
      在AzureSentinel中,AzureLogicApps可以用于增强和自动化安全操作和响应。它们可以作为安全编排自动化响应(SOAR)的一部分,帮助自动化和简化安全工作流程。以下是一些具体的应用实例: 数据富集和分析:例子:在接收到安全警报时,使用LogicApp来自动从其他源(如威胁情报数据......
  • Next.js 开发指南 路由篇 | App Router
    Next.js开发指南路由篇|AppRouter 前言路由(routers)是应用的重要组成部分。所谓路由,有多种定义,对于应用层的单页应用程序而言,路由是一个决定URL如何呈现的库,在服务层实现API时,路由是解析请求并将请求定向到处理程序的组件。简单的来说,在Next.js中,路由决定了一个页......
  • 寒假生活指导05
    今天继续完成实验4.实验报告题目:SparkStreaming编程初级实践姓名 日期2024.1.13实验环境:操作系统:Ubuntu16.04Spark版本:2.1.0Flume版本:1.7.0实验内容与完成情况:Flum安装(1)解压安装包tar-zxvfapache-flume-1.7.0-bin.tar.gz-C/export/s......