搜狗微信APP分析(一)java层

这篇具有很好参考价值的文章主要介绍了搜狗微信APP分析(一)java层。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在该app可以搜索关键词,选择微信后面的赛选进行排序:

搜狗微信APP分析(一)java层,2022,java,python,开发语言
发现如下加密参数:
搜狗微信APP分析(一)java层,2022,java,python,开发语言
搜狗微信APP分析(一)java层,2022,java,python,开发语言
未发现加固加壳方式:
搜狗微信APP分析(一)java层,2022,java,python,开发语言
我们直接搜索定位: package com.sogou.utils;
搜狗微信APP分析(一)java层,2022,java,python,开发语言

搜狗微信APP分析(一)java层,2022,java,python,开发语言
我们先hook下这个a方法看下传入的参数及结果:
搜狗微信APP分析(一)java层,2022,java,python,开发语言
搜狗微信APP分析(一)java层,2022,java,python,开发语言
先看这个用到了前三个参数:
那我们hook下这个 ScEncryptWall.encrypt(str5, str6, str7);

# -*- coding: utf-8 -*-
# @Author  : Codeooo

import sys
import frida



encrypt = """
Java.perform(function(){
    var lk = Java.use("com.sogou.scoretools.ScEncryptWall");
    lk.encrypt.implementation = function(a,b,c){
        console.log('参数str1 ' + a)  
        console.log('参数str2 ' + b)  
        console.log('参数str3 ' + c)  
        console.log('==== ' + this.encrypt(a,b,c))  
        return this.encrypt(a,b,c)
    }
});
"""


process = frida.get_remote_device().attach('com.sogou.activity.src')
script = process.create_script(encrypt)
script.load()
sys.stdin.read()

搜狗微信APP分析(一)java层,2022,java,python,开发语言
这个方法就是加密的参数了。
可以看到传入参数:

参数str1: http://app.weixin.sogou.com/api/searchapp
参数str2 :type=2&ie=utf8&page=1&query=55&select_count=1&tsn=1&usip=
参数str3 :空

结果就是那几个字段,k, v ,p, ,r , g

搜狗微信APP分析(一)java层,2022,java,python,开发语言

查看是个so的方法,我们继续放下看下请求响应。

搜狗微信APP分析(一)java层,2022,java,python,开发语言
hook下decrypt方法:

搜狗微信APP分析(一)java层,2022,java,python,开发语言

# -*- coding: utf-8 -*-
# @Author  : Codeooo

import sys
import frida



encrypt = """
Java.perform(function(){
    var lk = Java.use("com.sogou.scoretools.ScEncryptWall");
    lk.encrypt.implementation = function(a,b,c){
        console.log('参数str1 ' + a)  
        console.log('参数str2 ' + b)  
        console.log('参数str3 ' + c)  
        console.log('==== ' + this.encrypt(a,b,c))  
        return this.encrypt(a,b,c)
    }
});
"""

decrypt = """
Java.perform(function(){
    var lk = Java.use("com.sogou.scoretools.ScEncryptWall");
    lk.decrypt.implementation = function(a){
        console.log('参数str1 ' + a)  
        console.log('==== ' + JSON.stringify(this.decrypt(a)))   
        return this.decrypt(a)
    }
});
"""


process = frida.get_remote_device().attach('com.sogou.activity.src')
script = process.create_script(decrypt)
script.load()
sys.stdin.read()




搜狗微信APP分析(一)java层,2022,java,python,开发语言
传进来的参数为刚刚加密的数据,解密出来是byte数组,需要将byte转化为字符串就是源码。

OK ,完美运行,可以采集rpc-主动调用+flask进行调用

so:   System.loadLibrary("SCoreTools");

后续 我们讲下 so层的分析【搜狗微信APP逆向(二)so层】文章来源地址https://www.toymoban.com/news/detail-596088.html

到了这里,关于搜狗微信APP分析(一)java层的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】实现简易安卓开发:BeeWare 框架介绍 | 环境搭建 | 安装 BeeWare | Briecase 公文包 | 分析框架默认生成的 app.py

      ​​​​​​   一起玩蛇啊  👉 《一起玩蛇》🐍 💭 写在前面: 我们假定读者已经安装好了 3.8 版本后的 Python,并且安装好了依赖项,在 Windows 上构建 BeeWare 应用程序需要 Git,你可以可以从 git-scm.org 网站下载。安装完毕后重新启动 cmd,然后就可以准备建立虚拟环境了

    2024年02月02日
    浏览(100)
  • 【BeeWare 框架】Python 安卓开发:BeeWare 框架介绍 | 环境搭建 | 安装 BeeWare | Briecase 公文包 | 分析框架默认生成的 app.py

      ​​​​​​   一起玩蛇啊  👉 《一起玩蛇》🐍 💭 写在前面: 我们假定读者已经安装好了 3.8 版本后的 Python,并且安装好了依赖项,在 Windows 上构建 BeeWare 应用程序需要 Git,你可以可以从 git-scm.org 网站下载。安装完毕后重新启动 cmd,然后就可以准备建立虚拟环境了

    2024年02月03日
    浏览(47)
  • 【华为OD机考 统一考试机试C卷】手机App防沉迷系统(C++ Java JavaScript Python C语言)

    2023年11月份,华为官方已经将 华为OD机考:OD统一考试(A卷 / B卷)切换到 OD统一考试(C卷)和 OD统一考试(D卷) 。根据考友反馈:目前抽到的试卷为B卷或C卷/D卷,其中C卷居多 ,按照之前的经验C卷D卷部分考题会复用A卷/B卷题,博主正积极从考过的同学收集C卷和D卷真题,

    2024年02月19日
    浏览(47)
  • 数据分析课程设计(数学建模+数据分析+数据可视化)——利用Python开发语言实现以及常见数据分析库的使用

    目录 数据分析报告——基于贫困生餐厅消费信息的分类与预测 一、数据分析背景以及目标 二、分析方法与过程 数据探索性与预处理 合并文件并检查缺失值 2.计算文件的当中的值 消费指数的描述性分析 首先对数据进行标准化处理 聚类模型的评价 聚类模型的结果关联 利用决

    2024年02月12日
    浏览(57)
  • 微信小程序开发知识结构体系大全/图解(2022)

    请通读全文、切勿随机阅读、以便快速掌握 1、代码放大: 2、代码缩小: 3、选择页面内容: 1、查找页面内容所在文件: 先使用选择工具选择页面内容 再打开控制台一栏右边AppData 先使用选择工具选择页面内容 再查看左边底部页面路径 1、网页(骨架):index.wxml 2、脚本(

    2024年02月04日
    浏览(46)
  • ArchLinux 更换系统语言安装搜狗输入法

    建议新用户在安装 Arch 的时候先使用英文的系统环境,等稍微有了一定的使用经验之后再更换成中文环境,毕竟目前 arch 相关的资料以英文为主,如果你上来就使用中文的环境的话反而有些中文和英文对应不起来,会影响你的使用经验的积累。在你使用 arch 一段时间后将系统

    2024年02月05日
    浏览(46)
  • 即时聊天app开发-即时通讯app开发方案分析

    如今,即时聊天APP层出不穷,它已经成为人们日常生活中密不可分的社交工具。如今,即时聊天APP不仅是聊天工具,也是企业营销的利器。我们经常可以在聊天主页上看到一些广告。如有必要,用户可以直接点击广告了解详情。即时聊天APP作为未来跨越互联网和移动互联网的

    2024年02月05日
    浏览(45)
  • [JAVA安全]CVE-2022-33980命令执行漏洞分析

    在 i春秋的漏洞靶标上看见了此漏洞,所以前来分析一下漏洞原理,比较也是去年 7月的漏洞。 漏洞描述:Apache官方发布安全公告,修复了一个存在于Apache Commons Configuration 组件的远程代码执行漏洞,漏洞编号:CVE-2022-33980,漏洞威胁等级:高危。恶意攻击者通过该漏洞,可在

    2024年02月15日
    浏览(43)
  • C语言之开发工具:Visual Studio 2022安装教程

    一,C 语言 C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述

    2024年02月05日
    浏览(63)
  • Java/Python/Go不同开发语言在进程、线程和协程的设计差异

    在多线程项目开发时,最常用、最常遇到的问题是 1,线程、协程安全 2,线程、协程间的通信和控制 本文主要探讨不同开发语言go、java、python在进程、线程和协程上的设计和开发方式的异同。 进程 进程是 操作系统进行资源分配的基本单位,每个进程都有自己的独立内存空

    2024年01月23日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包