首页 > 其他分享 >APP逆向 day27unidbg打包

APP逆向 day27unidbg打包

时间:2024-08-05 19:24:11浏览次数:13  
标签:逆向 调用 java python APP args jar unidbg day27unidbg

一.前言

上三次我们把unidbg的基础到进阶都讲完了,现在我们来讲unidbg的大打包,打包分为两种打包,一种是传参一种是不传参,我根据往期案例挑几个和大家讲

二.不传递参数

这个我们拿车智赢举例子

2.1 配置和编译

点击这里

 再点击这几个选项

点击应用,这样就是配置好了

再这么选择点击

 点击

然后生成了一个out文件夹,其中圈出来的这个就是主要运行的jar包,然后我们把apk导入

这样我们就能够调用了,我们把他放入pycham,然后就可以使用终端调用和python代码调用了,这里我都教给大家

2.2 终端调用

我们进入到这个路径的根路径,执行

java -jar unidbg-0.9.7.jar

这样就能出值了

2.3 python调用

这里给出代码

import subprocess

cmd = f"java -jar  unidbg-0.9.7.jar"
signature = subprocess.check_output(cmd, shell=True, cwd="unidbg_0_9_7_jar")
data_string = signature.strip().decode('utf-8')
print(data_string)

三.传递正常参数 

tips:以后再打包别的 需要删除编译后的jar和配置文件 

3.1 传参的注意事项

1 因为使用python调用jar,需要动态传入参数给jar
2 借助于 java的main函数String[] args,把参数传入
java -jar xx.jar a=10
  public static void main(String[] args) {
          String a=args[0]
        BiliBili bili=new BiliBili();
        bili.sign();
    }

3 注意事项
3.1 参数中,如果包含 &  或者 空格,都会有问题
java -jar unidbg.jar  name=justin&age=19  # 会把& ,解析成空格--》
    String name=args[0]
    String age=args[1]
java -jar unidbg.jar  name=justin age=19 
    String name=args[0]
    String age=args[1]
    
3.2 我们的目标是,直接给它一个字符串  'name=justin&age=19&hobby=篮球'-->java拿到第0个位置字符串,自己通过 & 和 = 分割,放到 map中

3.3 要完成上述目标,传的时候,需要使用 "name=justin&age=19&hobby=篮球"  传入
    String str=args[0]  # name=justin&age=19&hobby=篮球
    

3.4 如果字符串特别长,终端也不支持
    -传一个文件名,把字符串放到文件中--》在java中打开文件读出来用
    
 4 python调用java,只支持传字符串形式

 3.2 编译和配置

我们先把这个配置的文件夹删掉,我们当时选的是在这个目录,直接删掉就好了,再把那个out的输出文件删除,我这里已经删除了

这样就配置好了,这次改了位置,方便好找,就在主文件夹下生成了个META文件夹,然后我们再来改代码

 我们当时这么写的,现在不能写死,根据前面的介绍肯定知道,我们得把传入的字符串改成字典

 先把main里面写上传递参数

再定义这么一个静态变量,将传入的字符串转换成字典

 这里改成这样就好了

3.3 终端调用

 然后,我们把apk复制进去,然后复制到pycham里面,然后终端调用,执行命令

 java -jar unidbg-0.9.7.jar  "actual_played_time=0&aid=466565149&appkey=1d8b6e7d45233436&auto_play=0&ts=1647952932"

3.4 python调用 

 这里给出python调用的方法

import subprocess
body = "actual_played_time=0&aid=466565149&appkey=1d8b6e7d45233436&auto_play=0&ts=1647952932"
cmd = f'java -jar  unidbg-0.9.7.jar "{body}"'
signature = subprocess.check_output(cmd, shell=True, cwd="unidbg_0_9_7_jar")
data_string = signature.strip().decode('utf-8').split("\n")[-1]
print(data_string)

 四.传递长字符串参数

这个我拿识货给大家举例子

大家记不记得这里,我们传递了很长的字符串,但是终端不支持长字符串,上面我们说了,可以放入文件读取

4.1 修改代码

main里这么修改

sign这么修改 

这样我们传入一个txt文档,把参数都放进去就好了

最后构建出来是这样的,把他放到python的文件夹里面

4.2 终端调用

执行java -jar unidbg-0.9.7.jar data.txt

数据是出来了,但是发现乱码,这是window终端,中文都会显示乱码,这是因为编码形式不同导致的,那我们用python调用就能解决这个问题

4.3 python调用

import subprocess
import locale
body = "data.txt"
cmd = f'java -jar  unidbg-0.9.7.jar "{body}"'

subprocess.run(cmd, shell=True, cwd="unidbg_0_9_7_jar",encoding=locale.getdefaultlocale()[1])

这样就ok了

五.总结 

今天说的很简单,就是打包,相信大家看一下就会了,怎么说呢,本来打算今天结束app逆向基础的,但是我后面会给大家讲一个完整的比较难的,那就是XHS,让我们拭目以待把

六.补充 

有什么问题私我,记得点赞关注加收藏哦,有求必应

标签:逆向,调用,java,python,APP,args,jar,unidbg,day27unidbg
From: https://blog.csdn.net/weixin_74178589/article/details/140909489

相关文章

  • APP逆向 day26unidbg下-pdd(anti)案例
    一.前言今天我们讲unidbg的下篇,也就是unidbg基础的最后一个部分,我们上节课也有补环境,比如补java环境,补安卓环境,这节课我们讲的肯定比这些都要难,我会给出一个之前讲过的案例,然后会讲一个全新的案例,pdd,这个里面的环境就更加难了,让我们接着往下看吧二.B站sign参数2.1回顾sign......
  • “逆向”分析关键词
    你是否正在寻找一种方法来提升内容营销效果?反向关键词搜索是一种有效的工具,可以帮助你做到这一点!通过使用此技术,你将能够更好地识别哪些关键词与你的目标受众相关,并相应地创建内容。什么是反向关键词搜索?反向关键词搜索,也称为竞争对手关键词分析,涉及分析竞争对手排名的关键......
  • Android Camera close异常导致app的input ANR案例分析
    1.背景在日常的项目开发过程中,经常会收到用户或者测试同仁报过来的ANR(ApplicationNotResponse)的问题,本文结合作者的日常工作中遇到的典型案例,分享ANR的分析过程。ANR(‌ApplicationNotResponding)‌主要分为以下几种类型:‌Inputdispatchingtimedout:‌当输入事件(......
  • 出现 No mapping for DELETE/GET等
    出现NomappingforDELETE/GET等错误一:请求url不对修改前如下图可知后端请求url为http://localhost:8080/user/addressBook运行后控制台出现发现后端请求url比前端请求url少了/改正:在@DeleteMapping后面加上/ @DeleteMapping("/")@ApiOperation("根据id......
  • Apple开发_正则表达式相关
    NSString+Regex.h#import<Foundation/Foundation.h>//正则表达式相关@interfaceNSString(Regex)//邮箱验证-(BOOL)is_Email;//手机号码验证-(BOOL)is_Phone_Num;//车牌号验证-(BOOL)is_Car_No;//网址验证-(BOOL)is_Url;//邮政编码-(BOOL)is_......
  • iOS开发基础147-ABM集中管理Apple设备
    AppleBusinessManager(ABM)是一种集中管理Apple设备、应用程序和内容的解决方案。它可以帮助企业简化部署和管理Apple设备。接入ABM可以让公司在设备设置、应用分发和内容管理方面更加高效和灵活。与传统的企业开发者账号(即AppleDeveloperEnterpriseProgram)和MDM(MobileDev......
  • SpringBoot-书店信息管理系统+93494(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP
    基于springboot书店信息管理系统摘 要书店信息管理系统采用B/S结构、java开发语言、以及Mysql数据库等技术。系统主要分为管理员和用户两部分,管理员管理主要功能包括:首页、轮播图、公告栏、资源管理(图书资讯、资讯分类)交流管理(留言板、留言板分类)系统用户(管理员、顾客用户......
  • spring bean生命周期中BeanNameAware、BeanFactoryAware或ApplicationContextAwar
    BeanNameAware、BeanFactoryAware和ApplicationContextAware是Spring框架中提供的三个Aware接口,它们允许Bean在生命周期的特定阶段获取关于自身或容器的信息。以下是关于这三个Aware接口的详细解释:1.BeanNameAware定义与功能:BeanNameAware接口允许Bean获取自己在Spring......
  • uniapp底部栏设置未读红点或角标
    uniapp底部栏设置未读红点或角标pages.json{...//省略"tabBar":{"color":"#333333","selectedColor":"#3296fa","backgroundColor":"#ffffff","bor......
  • uniapp页面跳转传参
    uniapp页面跳转传参1.uni.navigateTo传:<view@click="showDetail({id:1})"></view>showDetail(data){uni.navigateTo({url:"/pages/sys/workbench/productCenterFirm/productCenterFirmDetail?id="+......