记录一次BoxedApp Packer脱壳解包的记录
收到朋友的一个求助,一个硬件配套的上位机软件,无法联系到供应商,没有授权,在新电脑安装后无法使用.
简单的记录下过程
首先打开发过来的软件的目录下,一个配置工具,从图片可以判断,是.net winform程序,因此主程序大概率也是.net 写的.
使用dnspy反编译,发现无法解析.
使用winhex打开主程序,这里更推荐hex workshop,支持直接拖拽.
发现文件头部有bxpck的信息,根据相关搜索,得知这是使用了 BoxedApp Packer 打包的.net程序.
接下来就相对简单了,可以使用现成的解包工具.github就有,但是功能不够强大.无法满足我的需求.
使用cff explorer打开,exe,找到bxpck节点.dump出数据,保存.
保存后,使用16进制工具或者自己写一个,从第一个mz头文件信息开始导出所有数据.
保存成exe,至此,exe导出完毕!显示的图标也与实际程序一致.
可以看出,第一个为原始程序,第三个为dump后导出的程序,可以看出已经有图标了,文件变小了2Mb.
但到此,还是没有解决授权的问题.
使用dnspy定位到授权的代码,反编译再次编译模块导出,此处命名为crack程序,可以看到.程序变成了2350K,一小子小了很多,不奇怪.
dnspy会抛弃exe里打包的dll信息 ,先打开exe验证下 运行效果.
果不其然,报错:
知道了原因,就简单了.
使用C#手写一段代码
根据dll的pe头特征,遍历30926k的主程序信息,提取出正确的dll跟名称,另存为.
提取到所有的dll信息,数字命名的为未提取到pe文件头,初步判断为BoxedApp Packer相关的.net dll,暂时不管,直接抛弃.
hasp*.dll这个就有点意思了,台式thales旗下的safenet,专做软硬件加密加密狗之类的,
由于前面反编译的时候,已经直接跳过了该段加密,所以可以无视.但是依赖还有的,所以依然要把导出的这几个dll存放到软件根目录.
至此,解析完毕,验证效果
未破解版:
此处第二个tab功能不显示
破解后:
正常运行,没有任何报错,但由于手头没有相应的硬件连接,所以报连接失败,属于正常.
具体是否破解完美,待朋友那反馈.
随手写的小工具
2023年3月28日更新:
后续反馈可以正常运行.功能全部解锁.
记录一次BoxedApp Packer脱壳解包的记录的更多相关文章
- MAC实用操作记录---使用命令执行文件上传下载解压打包与解包
1.使用命令执行文件上传下载 https://www.cnblogs.com/sugartang/p/12743470.html 2.提示:打不开xx软件,在 OS X 安装软件打不开提示" ...
- python 零散记录(五) import的几种方式 序列解包 条件和循环 强调getattr内建函数
用import关键字导入模块的几种方式: #python是自解释的,不必多说,代码本身就是人可读的 import xxx from xxx import xxx from xxx import xx1 ...
- MonoTouch 二三事(三)mono mkbundle 打包程序的解包支持
2014.10.06 更新 编写了 IDA Pro 的插件,用来解包和打包 mkbundle程序,请参见 https://github.com/binsys/MKBundleManager 许久以后, ...
- Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)
一.使用单文件封包工具 单文件封包工具,顾名思义就是将可执行文件及其相关依赖打包成单个可执行文件的工具. 这里推荐两个单文件封包工具:Enigma Virtual Box和BoxedApp Packe ...
- linux下如何打包压缩?解包解压?.tar文件.gz文件
===文件打包.压缩 ==打包 tar [root@521478.com]# tar -cvf etc1.tar /etc //c创建 v详细 f打包后文件名 [root@521478.com]# t ...
- Swift中的Optional类型 (可选类型)与强制解包 ? !
我们在swift的开发中会经常遇见?和! ,理解这两个符号深层次的内容对我们的开发是相当有利的: 目前网上对swift3.0的教程还相当的少,如果去搜索会发现早期的说法,在定义变量的时候,swift是 ...
- 如何解包,编辑,重新打包boot images
HOWTO: Unpack, Edit, and Repack Boot Images http://forum.xda-developers.com/showthread.php?t=443994 ...
- zImage.img、ramdisk.img、system.img、userdata.img介绍及解包、打包方法
ramdisk.img system.img userdata.img介绍及解包.打包方法 Android 源码编译后,在out/target/product/generic下生成ramdisk.im ...
- tuple解包给类的构造函数
首先我们的第一步当然是将tuple解包.tuple提供了一个get函数来获取第N个元素.例如: get<1>(make_tuple(...)); 要将一个tuple全部拆解,就可以使用通过 ...
- Mtk Android 打包解包*.img
打包/解包 boot.img, system.img, userdata.img, or recovery.img [DESCRIPTION] MTK codebase编译出来的image必须使用MT ...
随机推荐
- [Py] Python 接口数据用 pandas 高效写入 csv
通过 pandas 把 dict 数据封装,调用接口方法写入 csv 文件. import pandas as pd data = [{"name": "a"} ...
- dotnet 警惕 C# 的 is var 写法
本文将和大家介绍 C# 语言设计里面,我认为比较坑的一个语法.通过 is var 的写法,会让开发者误以为 null 是不被包含的,然而事实是在这里的 var 是被赋予含义的,将被允许 null 通过 ...
- three.js实现相机碰撞,相机不穿墙壁、物体
大家好,本文实现了相机碰撞检测,使相机不穿墙壁.物体,并给出了思路和代码,感谢大家~ 关键词:数字孪生.three.js.Web3D.WebGL.相机碰撞.游戏相机 我正在承接Web3D数字孪生项目, ...
- MacOS安装和使用标注软件“labelImg”教程
原文发布于:https://blog.zhaoxuan.site/archives/16.html: 第一时间获取最新文章请关注博客个人站:https://blog.zhaoxuan.site. 简介 ...
- k8s-nginx实战部署1
目录 yaml 资源清单 run_deploy.sh .gitlab-ci.yml yaml 资源清单 deploy.yaml apiVersion: v1 kind: ConfigMap metad ...
- JS实现下拉框切换和tab标签切换
现在商城网页上会有下拉框切换内容,是如何实现的呢,研究了一天,在调整js代码和查找bug.最终完成了自己想要的效果,我没有写CSS样式,只是实现了基本功能,如果对你有所帮助,可以自己写css,使其更加 ...
- java学习之旅(day.01)
Markdown学习 标题 一级标题:#空格+标题名字 二级标题:##空格+标题名字 三级标题:###空格+标题名字 字体 粗体:两边都加两个** Hello,world 斜体:两边都加一个* Hel ...
- es部署
部署单机版es tar xf elasticsearch-7.16.0-linux-x86_64.tar.gz./bin/elasticsearch -dcan not run elasticsear ...
- NSInvocation 返回值在ARC下面的释放问题
一.先看下面的代码 -(NSArray *) operationFromTakeoffAction:(NSString *) action AtPoint:(CGPoint) flightPoint ...
- VALL-EX下载介绍:只需3秒录音,即可克隆你的声音
VALL-EX是一个强大和创新的多语言文本转语音模型,支持对中文.英文和日语的语音进行合成和克隆,使用者只需上传一段3-10秒的录音,就可以生成高质量的目标音频,同时保留了说话人的声音.情感和声学环境 ...