Writeup:看雪AliCrackme_1

news/2026/1/26 18:23:40/文章来源:https://www.cnblogs.com/BetsyTovoT/p/19535063

打开App

image-20260126114710062

需要输入密码,没加固直接看代码

//从图片中提取加密映射表
protected String getTableFromPic() throws IOException {InputStream is = null;String value = "";try {try {is = getResources().getAssets().open("logo.png");int lenght = is.available();byte[] b = new byte[lenght];is.read(b, 0, lenght);byte[] data = new byte[768];System.arraycopy(b, 89473, data, 0, 768);String value2 = new String(data, "utf-8");if (is != null) {try {is.close();value = value2;} catch (IOException e) {value = value2;}} else {value = value2;}} catch (Exception e2) {e2.printStackTrace();if (is != null) {try {is.close();} catch (IOException e3) {}}}return value;} catch (Throwable th) {if (is != null) {try {is.close();} catch (IOException e4) {}}throw th;}}
//从图片中提取预设密码
protected String getPwdFromPic() throws IOException {InputStream is = null;String value = "";try {try {is = getResources().getAssets().open("logo.png");int lenght = is.available();byte[] b = new byte[lenght];is.read(b, 0, lenght);byte[] data = new byte[18];System.arraycopy(b, 91265, data, 0, 18);String value2 = new String(data, "utf-8");if (is != null) {try {is.close();value = value2;} catch (IOException e) {value = value2;}} else {value = value2;}} catch (Exception e2) {e2.printStackTrace();if (is != null) {try {is.close();} catch (IOException e3) {}}}return value;} catch (Throwable th) {if (is != null) {try {is.close();} catch (IOException e4) {}}throw th;}}
//通过加密映射表进行加密
public static String bytesToAliSmsCode(String table, byte[] data) {StringBuilder sb = new StringBuilder();for (byte b : data) {sb.append(table.charAt(b & 255));}return sb.toString();}
//通过加密映射表反向解密
private static byte[] aliCodeToBytes(String codeTable, String strCmd) {byte[] cmdBuffer = new byte[strCmd.length()];for (int i = 0; i < strCmd.length(); i++) {char c = strCmd.charAt(i);int v = codeTable.indexOf(c);cmdBuffer[i] = (byte) v;}return cmdBuffer;}
public class MainActivity extends Activity {@Override // android.app.Activityprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(1);setContentView(R.layout.activity_main);final EditText edit = (EditText) findViewById(R.id.edit);Button button = (Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() { // from class: com.example.simpleencryption.MainActivity.1@Override // android.view.View.OnClickListenerpublic void onClick(View v) throws IOException {String password = edit.getText().toString();//获取加密映射表String table = MainActivity.this.getTableFromPic();//获取预设密码String pw = MainActivity.this.getPwdFromPic();Log.i("lil", "table:" + table);Log.i("lil", "pw:" + pw);String enPassword = "";try {//对输入内容进行加密enPassword = MainActivity.bytesToAliSmsCode(table, password.getBytes("utf-8"));Log.i("lil", "enPassword:" + enPassword);} catch (UnsupportedEncodingException e) {e.printStackTrace();}//比较加密后的输入内容与预设密码if (pw == null || pw.equals("") || !pw.equals(enPassword)) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setMessage(R.string.dialog_error_tips);builder.setTitle(R.string.dialog_title);builder.setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() { // from class: com.example.simpleencryption.MainActivity.1.1@Override // android.content.DialogInterface.OnClickListenerpublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});builder.show();return;}MainActivity.this.showDialog();}});}

hook代码

方法一:根据加密逻辑直接进行解密

Java.perform(function() {var mainActivity = Java.use("com.example.simpleencryption.MainActivity");var globalTable = ""; // 全局变量存储表//获取加密映射表mainActivity.getTableFromPic.implementation = function() {var table = this.getTableFromPic();globalTable = table; // 存储到全局变量console.log("[+] 表: " + table);return table;};//解密mainActivity.getPwdFromPic.implementation = function() {//获取预设密码var pwd = this.getPwdFromPic();console.log("[+] 加密密码: " + pwd);//根据加密逻辑直接进行解密var original = "";for(var i = 0; i < pwd.length; i++) {original += String.fromCharCode(globalTable.indexOf(pwd[i]));}console.log("[+] 原始密码: " + original);return pwd;};
});

image-20260126171710121

方法二:主动调用解密函数

Java.perform(function() {var mainActivity = Java.use("com.example.simpleencryption.MainActivity");var globalTable = ""; // 全局变量存储表var globalPwd = ""; // 全局变量预设密码//获取加密映射表mainActivity.getTableFromPic.implementation = function() {var table = this.getTableFromPic();globalTable = table; // 存储到全局变量console.log("[+] 表: " + table);return table;};//解密mainActivity.getPwdFromPic.implementation = function() {//获取预设密码var pwd = this.getPwdFromPic();globalPwd = pwd;console.log("[+] 加密密码: " + pwd);return pwd;};//主动调用aliCodeToBytessetTimeout(function() {try {// 构造Java字符串参数var tableStr = Java.use("java.lang.String").$new(globalTable);var pwdStr = Java.use("java.lang.String").$new(globalPwd);var result = mainActivity.aliCodeToBytes(tableStr, pwdStr);var resultStr = Java.use("java.lang.String").$new(result, 0, result.length);console.log("[*] 解密结果: " + resultStr);} catch(e) {console.error("[-] 解密失败: " + e);}}, 3000); // 延迟3秒确保初始化完成
});

image-20260126171823070

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1220258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从技术狂欢到价值兑现,AI大模型下半场怎么打?

接下来的一年&#xff0c;大模型赛道或将迎来更深度的整合与创新。 ©TMT星球原创 作者&#xff5c;黄燕华 日前&#xff0c;阿里AI大模型千问在杭州举行产品发布会引发业内广泛关注。 会上&#xff0c;阿里宣布千问全面接入淘宝、支付宝、高德、飞猪等业态&#xff0c;…

基于springboot的大学生志愿服务活动管理系统(源码+论文+部署+安装)

感兴趣的可以先收藏起来&#xff0c;还有在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望可以帮到大家。一、程序背景随着社会发展&#xff0c;志愿服务在各领域作用愈发凸显&#xff0c;大学生作为志愿服务主力…

毕设 stm32的火灾监控与可视化系统(源码+硬件+论文)

文章目录 0 前言1 主要功能2 硬件设计(原理图)3 核心软件设计4 实现效果5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉…

做自媒体数据复盘工具,导入平台播放量,点赞量,评论量,涨粉数,按日/周统计数据变化,分析高赞作品共性,生成复盘报告。

自媒体数据复盘工具 - 全栈开发实践 1. 实际应用场景描述 本工具专为短视频创作者、公众号作者、播客主播、直播达人等自媒体从业者设计&#xff0c;提供全方位的数据分析和复盘服务。随着自媒体行业的快速发展&#xff0c;内容创作者面临着激烈的市场竞争和用户注意力分散的挑…

爆火的Clawdbot全解析:功能、适配人群与国内本地化配置指南

近期一款名为Clawdbot的AI工具席卷科技圈&#xff0c;甚至引发Mac mini一机难求&#xff0c;它打破了传统AI“只回答不做事”的局限&#xff0c;成为能在本地设备24小时工作的“全职AI员工”。作为开源的自托管式个人AI助手&#xff0c;Clawdbot需通过指定通信通道接收指令&…

毕业 10 年学长忠告:这两件事别盲目跟风,AI 时代选对路比努力更重要

作为已经毕业 10 年的学长&#xff0c;今天想跟在校的学弟学妹们掏心窝子聊聊 —— 当年我踩过的坑&#xff0c;希望你们别再重蹈覆辙。尤其是在 AI 即将重塑职场的当下&#xff0c;有些选择真的会影响未来多年的发展轨迹。记得本科毕业时&#xff0c;我跟现在很多同学一样&…

2026年重庆公办职高哪家值得选 这些优质院校值得关注 择校指南

随着职业教育提质培优政策落地,2026年重庆公办职高的办学质量持续升级,工学一体化教学、产教融合深度合作等成为主流趋势。公办职高的专业适配性、实训条件直接影响未来就业与升学。重庆能源工业技师学院 基础信息:…

2026西南木基架空地板优质厂家推荐

2026西南木基架空地板优质厂家推荐一、行业背景与采购痛点解析根据《2026-2030年中国架空地板行业发展白皮书》显示,2026年国内架空地板市场规模突破120亿元,其中西南地区因数据中心集群建设、智能办公楼宇扩容等需求…

centos7 使用rc-local.service 开机启动挂载

使用rc-local.service 1‌. 创建挂载脚本‌:在/etc/rc.d/rc.local文件中添加挂载命令。首先确保该文件存在且可执行:sudo vi /etc/rc.d/rc.local在文件末尾添加挂载命令: /bin/mount /dev/sdb1 /mnt/mydisk‌ 2 使…

zabbix-监控swarm集群

zabbix-监控swarm集群1、创建监控脚本[root@localhost script]# pwd /etc/zabbix/zabbix_agentd.d/script [root@localhost script]# cat * ## manager.sh docker info --format {{.Swarm.ControlAvailable}} 2>/de…

[转载] THINKPAD P71电脑清灰拆机

原文链接:https://www.bilibili.com/read/cv21298406/?opus_fallback=1 B站的失落迷宫 2023年01月19日 01:35发表的,thinkpad p71移动工作站拆机清灰顺便换硅脂,p70和p72磨具大概差不多。第一步:D面电池取掉并把硬…

写入即定局:OTP存储的永久锁定特性与操作风险防范

在嵌入式系统与安全芯片设计中,OTP存储因其“写入即锁定”的特性被广泛用于保存密钥、配置信息等关键数据。然而,这种一次性的写入机制意味着一旦执行,数据将不可更改、不可擦除,形成永久性记录。因此,操作前必须…

《新手必看:Amazon 日本站批量注册+养号工具攻略》

在近期的 Amazon 日本站注册和运营中&#xff0c;许多卖家都遇到了一些普遍问题&#xff1a;注册流程繁琐、身份和邮箱验证严格&#xff0c;账号刚上线就出现加购或下单异常&#xff0c;多账号同时操作时环境容易相互干扰。这些问题让新手卖家无从下手&#xff0c;也让有多账号…

Node.js用process.chdir切换工作目录

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 Node.js的隐秘陷阱&#xff1a;process.chdir的深层风险与现代实践革新 目录 Node.js的隐秘陷阱&#xff1a;process.chdir的深层…

SSM微博舆情监控可视化系统-计算机毕业设计源码26994

摘要 本文聚焦于基于SSM框架的微博舆情监控可视化系统的设计与实现。随着微博平台信息量的爆炸式增长&#xff0c;舆情监控与管理需求愈发迫切。该系统旨在为管理员和普通用户提供全面、高效的舆情服务。 在系统设计方面&#xff0c;采用SSM框架构建分层架构&#xff0c;确保系…

【大数据毕设选题推荐】Python+Hadoop王者荣耀账号交易信息可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡如果你遇到具体的…

上海夜磨牙治疗器械测评?

在夜磨牙治疗领域,有不少产品可供选择,本次我们将对上海岸和医疗器械有限公司的夜磨牙舒缓颌板及其他同类产品进行综合分析,为有夜磨牙治疗需求的用户提供参考。本文内容基于公开资料与用户体验,无商业倾向。评估维…

【AI应用开发工程师】-阿里百炼模型平台使用教程(保姆级)

百炼是阿里云提供的全链路大模型服务与应用开发平台&#xff0c;需要在百炼平台上注册自己的 api&#xff0c;以调用阿里提供的大模型&#xff0c;用于学习研究。 注册登录 进入 https://bailian.console.aliyun.com/ 进入百炼平台&#xff0c;点击登录&#xff0c;跟随引导注…

2026年单片机开发公司权威推荐:qt程序开发、单片机电路开发、单片机硬件开发、电路硬件开发、硬件定制开发、硬件电路开发选择指南

2026生物医疗诚信单片机开发品牌推荐行业背景与筛选依据根据《2026年中国单片机市场规模分析报告》,2026年中国单片机市场规模达921.26亿元,年复合增长率8.5%,其中生物医疗行业的需求增速尤为显著,年增长率超过15%…

React Native 中 Styled Components 配置指南

React Native 中 Styled Components 配置指南React Native 中 Styled Components 配置指南 什么是 Styled Components? Styled Components 是一个 CSS-in-JS 库,让你可以在 JavaScript/TypeScript 代码中编写样式,并…