记录一次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日更新:

后续反馈可以正常运行.功能全部解锁.

posted on 2023-03-19 14:07  火星大能猫  阅读(596)  评论(1编辑  收藏  举报