安卓逆向百例
某嘟牛通过UI Automator Viewer找到登录按钮绑定的id
拖到jadx进行反编译,搜索btn_login,找到了登录函数。
定位到login()函数
12345678910111213private void login(String userName, String pwd) { this.DEFAULT_TYPE = new TypeToken<RequestResult<User>>() { // from class: com.dodonew.online.ui.LoginActivity.1 }.getType(); this.para.clear(); this.para.put("username", userName); this.para.put("userPwd", pwd); if (TextUtils.isEmpty(DodonewOnlineApplication.d ...
Prometheus+Grafana搭建和使用
Prometheus-Grafana搭建和使用1.prometheus监控框架工具介绍prometheus是由谷歌研发的一款开源的监控软件,它通过安装在远程机器上的exporter,通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上
同时Prometheus后端用 golang语言开发,前端是 Grafana
2.支持类型Prometheus为了支持各种中间件以及第三方的监控提供了exporter,大家可以把它理解成监控适配器,将不同指标类型和格式的数据统一转化为Prometheus能够识别的指标类型。
例如Node exporter主要通过读取Linux的/proc以及/sys目录下的系统文件获取操作系统运行状态,reids exporter通过Reids命令行获取指标,mysql exporter通过读取数据库监控表获取MySQL的性能数据。他们将这些异构的数据转化为标准的Prometheus格式,并提供HTTP查询接口。
Prometheus的流行和Kubernetes密不可分,支持对Kubernetes、容器、OpenStack的监控。
3. Prometheus ...
华为数通实习
实验拓扑
配置参数
左侧拓扑
右侧拓扑
任务1:设备命名为了方便后期维护和故障定位及网络的规范性,需要对网络设备进行规范化命名。请根据Figure 3-1实验考试拓扑对设备进行命名。命名规则为:城市-设备的设置地点-设备的功能属性和序号-设备型号。例如::处于杭州校园的核心层路由器,命名为:HZ-HZXiaoYuan-Core01-AR6140。请注意大小写,务必与Figure3-1实验考试拓扑保持一致
将LSW3改名123<Huawei>sy[Huawei]sy HZ-HZXiaoYuan-Agg01-S5731[HZ-HZXiaoYuan-Agg01-S5731]undo info-center enable //关闭系统提醒
将LSW4改名123<Huawei>sy[Huawei]undo info-center enable[Huawei]sy HZ-HZXiaoYuan-Agg02-S5731
将LSW1改名123<Huawei>sy[Huawei]undo info-center enable[Huawei]sy HZ-H ...
手动学习深度学习
手动学习深度学习1.环境准备1.1 安装CUDA选择自己适合的CUDA版本进行下载
1https://d2l.ai/chapter_appendix-tools-for-deep-learning/aws.html#installing-cuda
1.2 安装miniconda选择自己合适的miniconda版本进行安装,安装时注意勾选添加环境变量,要不然后面还得手动添加环境变量。
1https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
1.3 创建环境若输出正常则证明安装成功
1conda
创建一个conda环境指定其版本为3.8的版本
1conda creat -n test python=3.8
激活环境
1conda activate test
安装jupyter,torch,torchvision,由于作者用的是cuda的版本是12.7,所以用最新的torch版本就可以,由于默认源是在国外,要通过换源或者魔法,作者采用的是清华源,换源的过程请自行研究。
1pip install jupyter d2 ...
FridaHook Conda环境搭建
因为安卓版本不一需要的frida环境也不一,所以直接用conda进行统一管理
Anaconda 安装直接下载windows版的,记得把环境变量也勾选上会方便很多
https://www.anaconda.com/download/#windows
然后安装就可以了
Frida环境配置这里主要讲windows上的环境搭建,需要在安卓端加入server才能正常运行,server端配置请看另一篇博客
https://xiyuanhuaigu.github.io/2023/03/26/FridaHook%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/
1conda create -n androidRE python=3.8
然后在他系统自带的命令行中启动环境
12345conda activate androidRE安装node环境conda install -c conda-forge nodejs
之后进行测试
安装frida (适合安卓12)
1pip install frida==16.2.2
1pip install frida-tools==1 ...
算法基础
快速排序1.确定分界点2.调整范围2.1.(简单)开两个数组a[I],b[j],遍历数组,若大于插入a[i],若小于插入b[j],然后将两个数组合并。得到调整范围后的数组。
3.递归处理左右段4.模板12345678910111213void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { do i ++ ; while (q[i] < x); do j -- ; while (q[j] > x); if (i < j) swap(q[i], q[j]); } quick_sort(q, l, j), quick_sort(q, j + 1, r);}
归并排序1.确定分界点mid = ( l + r)/2
2.递归排序左边和右边3.归并(合 ...
Rust:axum学习笔记(1) hello world
Rust:axum学习笔记(1) hello worldaxum是Rust生态的web框架新秀,虽然项目成立不久,但github上的star数已超2.8k,其底层依赖的是高性能的Tokio,Tokio这货就不多说了,借用知乎《深入浅出Rust异步编程之Tokio》上的一张图:
Rust中的Tokio几乎是同类框架的性能天花板了,而axum在Tokio基础上构建,起点就站在巨人的肩膀上。
一.helloword先来一个helloword的案例:
cargo:
123[dependencies]tokio = {version = '1',features=["full"]}axum = "0.7.4"
12345678910111213141516use axum::{ routing::get, Router,};// 这里使用了use关键字导入了Axum库中的get函数和Router结构体。get函数用于定义HTTP GET请求的路由处理,Router结构体用于创建 ...
2023蓝帽杯决赛WP
攻击路线图
外网区任务一:引流APK渗透步骤1:二维码分析
下载引流APK
解析二维码,发现flag和apk下载地址
步骤2:apk分析
下载apk并进行分析,使用 jadx 工具中全局搜索 flag{ 关键字
从搜索结果中,找到flag,双击即可复制,里面有两个flag,但是只有一个flag是正确的。
步骤3:通过apk发现目标其他网站
因为apk下载地址是:
http://172.16.20.200/%E6%B8%B8%E6%88%8F.apk
因此全局搜172.16.搜其他目标其他地址
02
任务二:博彩网站主站渗透访问从apk中发现的网站http://172.16.10.102,发现是博彩网站主站
步骤4:文件上传获取目标服务器权限
访问系统之后,点击右上角的注册,根据要求填写信息,注册一个普通用户
注册成功之后在上面填入用户名和密码,登录系统
点击会员中心
在基本资料处有一个文件上传
在【会员中心】-【基本资料】处,点击【选择文件】,随意选择任意一张图片,尝试修改修改后缀为ini,发现可以成功上传
步骤5:绕过WAF
上传 .user.ini 文件,尝试对 ...
攻防世界RE
Reversing-x64Elf-100追踪main 函数发现
1234567891011121314151617181920__int64 __fastcall main(int a1, char **a2, char **a3){ char s[264]; // [rsp+0h] [rbp-110h] BYREF unsigned __int64 v5; // [rsp+108h] [rbp-8h] v5 = __readfsqword(0x28u); printf("Enter the password: "); if ( !fgets(s, 255, stdin) ) return 0LL; if ( (unsigned int)sub_4006FD((__int64)s) ) // 关键函数实现对比 { puts("Incorrect password!"); return 1LL; } else { puts("Nice!"); ...
安卓常用目录
安卓常用目录data/data存放用户APK数据的目录,每个APK都有自己的目录,以包命名,就是在data/data/目录下,会产生一个跟Package一样的目录这是一个私有的目录,app只能访问各自的目录,除非root权限。
data/app用户安装的app在该目录下,导出app文件可以使用命令
1adb pull /data/app/包名-1/base.apk // 导出 APK 文件 其中,包名-1 是应用程序的版本号。
data/local/tmp临时目录权限比较大
system/app存放系统自带的app
system/lib,system/lib64存放系统so文件
system/bin存放shell命令
system/frameworkAndroid系统所用到的框架,如一些jar文件
sd卡目录,不管手机有没有储存卡都会有这个目录,app操作sd卡需要申请权限Android几个目录的权限测试/data/data/pkgNameapp的私有目录,该路径下的文件,通常需要拷贝到sdcard目录,再pull出来
/data/local/tmp一个权限比较大的临时目录,一 ...
010Editor破解
分析010程序无壳可以放心使用,网上的破解方法也很多,但是大多数是使用注册机进行破解,这里我提供一个更简单的方法。
流程首先下载32位的最新版的010 Editor,将其载入Xdbg,查看其汇编代码。
先按F9使程序运行起来,按shift+d搜索字符串,我们要搜索的内容为刚进入程序时弹出来的内容,Evaluation
猜测具有换行符的才是真正的进入界面弹的字符串,将所有的字符串加个断点(F2)
可以看到,符合试用版提示的字符串有4个(都是换行符结尾),这4条指令地址非常接近,双击其中一条指令查看汇编代码,发现它们都在同一个子程序里,只是判断语句的分支不同。按F9运行一下,果然在启动之前能够中断,说明这段子程序就是在程序启动时用于检查注册状态的。
找到该程序段的入口地址,对其流程图进行分析
使用右键有个流程图或者直接选中那行按G
可以看到出现一个分支语句cmp 它主要是将eax里面的内容与0xDB进行对比,若对比通过则跳转到右边的不通过则跳转到左边,选中cmp eax,DB这一行按G返回,找到注册标志后,改程序流向是无效的,必须找到设置注册标志的公共CALL,在CALL里边改程序流 ...