某APP的逆向分析
首先是进行抓包
抓包发现点击登录之后发出去了一个登录的数据包,复制其中的 "Encrypt"在反编译工具中进行查找。搜索到两个疑似的函数
由于不确定是哪个函数,所以采用hock的方法进行判断。由于手机和电脑都配置了hock的环境。
启动手机端的hock程序
1.data/local/tmp/fsarm64
启动hock脚本
1frida -UF -l hock.js
hock第一个函数,发现并没有显示结果。
12345678910Java.perform(()=>{ var jsonRequest = Java.use("com.dodonew.online.http.JsonRequest") console.log(jsonRequest) jsonRequest.paraMap.implementation = function(a){ console.log("params1",a) this.paraMap(a) ...
r0capture配置及使用
r0capture配置及使用下载github地址:https://github.com/r0ysue/r0capture
配置安装依赖123Python版本>=3.6pip install logurupip install click
安装 frida详见另一篇博客
使用先启动frida
12cd /data/local/tmp./fsarm64
切记仅限安卓平台7、8、9、10、11 可用 ,禁止使用模拟器。
Spawn 模式:
1$ python3 r0capture.py -U -f com.coolapk.market -v
Attach 模式,抓包内容保存成pcap文件供后续分析:
1$ python3 r0capture.py -U 酷安 -v -p iqiyi.pcap
建议使用Attach模式,从感兴趣的地方开始抓包,并且保存成pcap文件,供后续使用Wireshark进行分析。
老版本Frida使用包名,新版本Frida使用APP名。APP名必须是点开app后,frida-ps -U显示的那个app名字。
收发包函数定位:Spawn ...
操作系统从0到1
一 部署工作环境开发环境:Ubuntu 20.04 LTS
首先是需要安装的东西:
123sudo apt install build-essentialsudo apt-get install libghc-x11-devsudo apt-get install xorg-dev
下载Bochs https://udomain.dl.sourceforge.net/project/bochs/bochs/2.6.8/bochs-2.6.8.tar.gz
下载完毕之后将其移动至虚拟机中想要的位置,然后解压,命令:tar -zxvf bochs-2.6.8.tar.gz
为即将要安装的bochs创建一个空目录
1mkdir bochs
进入解压后的bochs-2.6.8文件夹 cd bochs-2.6.8
配置bochs的config文件(–prefix这后面填的是你想要安装bochs的目录),编译,安装
./configure –prefix=/home/ubuntu/Desktop/bochs –enable-debugger –enable-disasm –enable-iod ...
buuctfRE
Ascii码表ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符。
ASCII码表具体如下所示:
Bin (二进制)
Oct (八进制)
Dec (十进制)
Hex (十六进制)
缩写/字符
解释
0000 0000
00
0
0x00
NUL(null)
空字符
0000 0001
01
1
0x01
SOH(start of headline)
标题开始
0000 0010
02
2
0x02
STX (start of text)
正文开始
0000 0011
03
3
0x03
ETX (end of text)
正文结束
0000 0100
04
4
0x04
EOT (end of transmission) ...
Centos7扩容
将虚拟机关机,然后点击VM顶部菜单栏中的显示或隐藏控制台视图按钮来显示已建立的虚拟机的配置信息 ,然后左边菜单栏点击硬盘,在弹出的对话框选中硬盘,并点击扩展按钮,然后在弹出框中的最大磁盘大小修改未所需要的磁盘大小,比如我现在需要扩容15G,原本的磁盘大小是20G,所以我这里将原本的20G修改成35G,然后点击扩展,(如果存在快照,提前上传快照,否则不能扩展)
https://blog.51cto.com/u_16060121/6176862
Linux虚拟机固定ip
设置静态IPV41234centos7的网络IP地址配置文件在/etc/sysconfig/network-scripts文件夹下。查看当前网卡名称 ifconfig。ens33网卡对应的配置文件为ifcfg-ens33,使用vim编辑。vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改前:
12345678910111213141516TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="dhcp"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="s ...
160个CrackMe
CrackMe001程序没有加壳,可以放心逆向
拖入OD找到以下字符串,可以看到下面的Failed!是错误的弹出,上面的Congratz!是正确的弹出。
此处调用了比较的函数,在此函数处下一个断点,EAX处储存着输入的字符,EDX处储存着需要比较的字符,由于字符是直接写死,所以第一个序列号是一个固定的硬编 码 Hello Dude!
输入 Hello Dude! 程序弹出正确提示 序列号部分完成
接下来分析用户名和序列号的部分 这个部分比单纯的序列号要有点难度,先找到入口函数。
首先程序会取输入的用户名的第一位,后将第一位乘0x29再乘2,修改完后的数据存在原来的内存地址中
后通过栈中的操作,在字符串的前后分别添加 CW-与-CRACKED最后将输入的密码与拼接好的字符串进行匹配。
注册机:
123456str1 = 'CW-'str2 = '-CRACKED'username = input("请输入用户名:")username = username[:1:]username = str(ord(usernam ...
FridaHook环境搭建
frida版本:14.2.18
frida-tools:9.2.5
python:3.7
此配置适用于Android10版本的逆向,具体版本适配请参考官网
一.安装python3.7前往python官网找到3.7版本下载,网上方法很多这里不在赘述
二.安装 Frida和 Frida-tools12pip install frida==14.2.18pip install frida-tools==9.2.5
若没科学上网环境可能很慢,等个30分钟左右就差不多了
检查环境:
1frida --version
若出现14.2.18则Frida-tools安装成功
进入python解释器
1import frida
若不报错则 frida安装成功
配置 NFS 实现 Linux 之间的目录共享
网络文件系统(英语:Network File System,缩写作 NFS)是一种分布式文件系统,力求客户端主机可以访问服务器端文件,并且其过程与访问本地存储时一样,它由Sun Microsystems(已被甲骨文公司收购)开发,于1984年发布。NFS 的实现基于 ONC RPC(一个开放、标准的RFC系统,任何人或组织都可以依据标准实现它)。
本文仅介绍 NFS 最简单的用法:在两台不同的 Linux 机器上共享目录。
A 和 B 的连接是内网或公网均可。但公网比较麻烦,要解决防火墙的问题。而且由于 NFS 是明文,所以一般不建议在公网使用。本文的示例用的公网主要是因为我在搞这个的时候手里暂时只有两个不在同一网段的机器,又懒得搞 docker 啥的=。=,不过你直接在内网照做也没什么区别。
我们将 A 称为 NFS 服务器,将 B 称为 NFS 客户端。下面也都将以 NFS 服务器和 NFS 客户端称呼,不再提及 A 和 B。
1. 通用操作:安装必要的程序在 CentOS 中 NFS 的主程序软件包名为 nfs-utils。前文说过,NFS 的实现是基于 RPC 的,所以当 ...
adb常用命令
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455adb version #显示adb版本和路径adb start-server #启动serveradb kill-server #停止serveradb devices #显示连接的设备列表adb devices #查看连接设备adb -s cf27456f shell # 指定连接设备使用命令adb install test.apk # 安装应用adb install -r demo.apk #覆盖安装adb uninstall cn.com.test.mobile #卸载应用,需要指定包adb uninstall -k cn.com.test.mobile #卸载app 但保留数据和缓存文件adb shell pm list packages #列出手机装的所有app 的包名adb shell pm list packages -3 #列出除了系统应用的第三方应 ...
k8s公网部署
1CentOS 7.6 系统主机 3 台,基于公网 IP 搭建 1 主 2 从的 Kubernetes 集群
一、准备工作1.版本信息
Docker
20.10.21
Kubernetes
1.21.0-0
Flannel
0.20.2
2.集群角色规划3 台 CentOS 7.6 主机,集群角色规划如下
Master
Worker01
Worker02
公网 IP
139.196.219.92
1.116.156.102
121.37.169.103
内网 IP
172.21.253.164
10.0.4.15
192.168.0.89
服务器厂商
阿里云
腾讯云
阿里云云
3.修改 hosts 文件设置 master 主机的 hostname 为 m
1sudo hostnamectl set-hostname m
分别设置 2 台 worker 主机的 hostname
12sudo hostnamectl set-hostname w1 sudo hostnamectl set-hostname w2
分别修改 3 台主机 ...
使用kubeadm快速部署一个k8s集群
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。
这个工具能通过两条指令完成一个kubernetes集群的部署:
12345# 创建一个 Master 节点$ kubeadm init# 将一个 Node 节点加入到当前集群中$ kubeadm join <Master节点的IP和端口 >
1. 安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:
一台或多台机器,操作系统 CentOS7.x-86_x64
硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点
禁止swap分区
2. 准备环境
角色
IP
master
192.168.203.132
node1
192.168.203.133
node2
192.168.203.131
1234567891011121314151617181920212223242526272829303132# 关闭防火墙systemctl stop firewa ...