基于P-CAN刷写的DamoguDownloader
提示:基于P-CAN接口的二次开发
开发者:大蘑菇(919740574@qq.com)
时间支配:业余时间开发
文章目录
- 基于P-CAN刷写的DamoguDownloader
- 前言
- 一、开发框架及操作系统环境
- 二、整体界面布局
- 1.开始动画
- 2.菜单设计
- 2.1窗口置顶与取消置顶
- 2.2关于作者
- 2.3用户手册
- 3.界面伸缩布局设计
- 4.口令权限管理
- 5.机器码激活
- 6.配置信息
- 7.导入文件
- 8.CRC校验值的计算
- 9.Intel hex crc校验值的计算
- 10.安全算法dll文件接口校验
- 11.悬浮窗设计
- 12.配套文件
- 13.安全措施
- 总结
前言
本篇文章用于介绍软件整体功能,以及开发过程中遇到的一些问题
提示:以下是本篇文章正文内容,下面案例可供参考
一、开发框架及操作系统环境
环境:windows平台
框架:VS MFC Dialog窗体程序
二、整体界面布局
1.开始动画
[启动界面]
制作载入界面的想法来自于每次使用PS及VS2010的时候都会有一个载入界面,当然,DamoguDownloader选择加入该载入界面也仅仅只是作者对于界面的追求,以及学习一些新的知识点,至于如何在MFC中加入载入界面图片,可以具体翻看我的其他原创文章。
2.菜单设计
2.1窗口置顶与取消置顶
[需求]使用软件的过程中,希望在打开文件过多的情况下,刷写软件可以实现永远保持在最前端
[需求]在置顶窗口和非置顶窗口被选择的时候能够清楚地知道当前选择状态,且实现单选
[需求]快捷键实现功能选择
已实现,学习的代码情参考我的原创文章菜单栏的使用
2.2关于作者
正所谓首部作品需要留个记号,有感兴趣的小伙伴可以加微信来探讨更多事宜,不论是开发、学习或者合作。
2.3用户手册
用户手册的增删改查,以及字体、颜色的设置方法,请参照我的原创文章RichEdit控件的使用,通过使用TreeControl与RichEdit控件完成该部分设计。
3.界面伸缩布局设计
由于软件集成度很高,很多功能其实更多是兼顾开发过程中用到的小工具,所及加入缩写界面设置,按钮红色是重绘控件的结果,需要学习的可以参考我的原创文章,具体哪一篇请自行判断。
引入自由伸缩的好处是,正常刷写的过程中软件看起来会格外小巧,附庸的功能被收缩。
4.口令权限管理
口令管理会解锁响应的权限,一款集成度极高的软件中,应该兼顾着权限不被滥用。
[无权限]
所有按钮均不可使用,仅登录按钮可使用
[初级刷写权限]
红色按钮缩放窗口不可用,具备刷写权限。
[初级开发者权限]解锁CRC校验及IntelCrc计算权限
[管理员权限]开放大多数权限,H86刷写权限关闭
[最高权限]除Make ini文件权限,其余权限开放
[开发者]所有权
开发者将拥有所有权,包括去制作ini配置文件的权利,ini可以改变代码内部底层刷写流程,及服务的算法、校验等相关信息。
需要掌握ini文件的读写操作以及读写加密操作,生成,导入,加密,解码等操作
5.机器码激活
在开发机器码的验证中需要学习的:
注册表的读写操作
机器码:MD5+盐值的算法(不可逆)
汇编语言读取机器相关信息以及拼合。
6.配置信息
配置信息的目的是,搭建底层代码,通过改变ini文件相关信息值,来改变刷写文件底层的走向,解决多套流程带来的麻烦,将众多规范集成在一个软件中。
细节设计,配置文件按钮在未选择配置方式时,会变成不可选择状态,当识别到有文件数据后,变为可选,结果栏也会实时显示当前配置情况。
在这里改变ini文件,可以实现多种规范的切换刷写,ini文件仅开发者具有所有权。
7.导入文件
文件传统的导入方式为按钮导入,在实际使用过程中,会发现有些项目文件工程路径很深,有时候找的很费力,故引入拖拽带入的方式,即可以从任意位置拖拽一个文件导入到该位置,目前引入防错功能,即自动识别文件格式是否为Hex或者H86格式的文件。
8.CRC校验值的计算
导入需要计算的CRC文件,直接计算得到文件的值。
9.Intel hex crc校验值的计算
熟悉Intel hex格式的都知道,Hex文件格式是很工整的,最后的校验位对于手动计算来说确实是麻烦了点,当然你要去做一个格式转换的工具来说,去制作这个校验位的接口也是必不可少的,不然如何实现转换呢。
10.安全算法dll文件接口校验
在开发过程中难免会用到dll文件,当作为一个开发人员的时候,你做出来的dll文件是否正确如何去校验?
用VS做一个控制台程序去校验?
未免显得过于麻烦,那么只需将dll文件导入到该路径,然后输入你预期的种子那么会自动计算密钥,通过比对去得出你的dll文件开发是否存在问题。
11.悬浮窗设计
12.配套文件
1.安全算法dll文件
2.CRC32算法dll文件
3.刷写ini配置文件
4.激活码一枚
5.权限口令
13.安全措施
1.配置文件落到别人手里是否会暴露公司的刷写流程
答:不会,已加密,效果如下
2.如果我没有开发者权限能否自己制作ini文件
答:不能,因为采用了加密算法,所以除非你破解了算法
3.为何不开放H86刷写权限
答:H86文件在本软件中刷写方式不同以往刷写方式,权限过高,无视很多规则,故禁用了。
4.还有哪些安全措施
答:在开发过程中也兼顾着测试的觉得,发现很多不合理的地方随手便修改了,很多安全互锁机制,比如在未导入flashdriver的情况下升级按钮会处于禁用的状态。
总结
承担角色:
界面布局
Logo制作
启动画面
软件需求
软件架构
详细设计
代码实现
单元测试
软件集成
集成测试
代码量>10000行
完成人:大蘑菇