找回密码
 立即注册
查看: 696|回复: 11

探究:AIappISP软件为什么启动这么卡

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-12-1 17:08:17 | 显示全部楼层 |阅读模式
本帖最后由 VCC 于 2024-12-1 18:12 编辑

之前关注到讨论 6.94Z报毒无法运行 - 问题反馈:ISP软件/头文件/单片机数据手册规格书等 国芯技术交流网站 - AI32位8051交流社区


我也很想知道,为什么它会报毒,里面究竟做了什么敏感操作?
另外,它为什么这么慢?


于是使用【火绒安全分析工具】进行行为分析


注意到在程序的初始化读条阶段,程序主要都是在做注册表的读写(程序启动时总共做了2万3千条系统API操作,其中注册表操作占到2万1千条!!!)


截图202412011654104115.jpg
看起来是在加载注册表里存储的配置STC-ISP配置信息。


一眼就可以发现有个很严重的问题!!!
程序每次读取一个字段。都是从HKEY_USERS\S-1-5-21-789336058-926492609-725345543-500\Software根部开始遍历的!
这意味着同目录下的大量注册表配置的访问将会是非常低下


正确的目录树遍历算法应该是这样子的(逐层深入,没有多余的反复操作):
截图202412011700142325.jpg


目前的错误代码算法,让AIappISP软件的注册表读写效率,几乎打了7倍的折扣!!!(本来一条操作可以完成的,现在要从根目录开始,逐层目录开始访问)


按照之前的估计如果这其中注册表操作占到2万1千条,优化7倍速度后,,程序的启动速度将会快7倍!!!


小调查:你们的电脑启动最新版STC-ISP需要多久 - 问题反馈:ISP软件/头文件/单片机数据手册规格书等 国芯技术交流网站 - AI32位8051交流社区
截图202412011706026365.jpg
原本8秒启动的用户,如果加速7倍,或许主程序只需要1秒多就可以完成启动了。


希望AI官方可以评估一下AIapp-ISP源代码中此处的操作,希望可以优化!!!


另外还偶然观察到,在我的电脑上,每次启动AIapp-ISP-v6.94Z.exe,程序都会启动bcdedit.exe系统工具进程
截图202412011621306356.jpg



AIapp-ISP-v6.94Z.exe文件里可以看到这个字符串,说明它具备调用【系统的BCDEDIT工具自动设置TestSigning和NoIntegrityChecks两项参数】的功能
截图202412011619298787.jpg

但并不是在启动的时候做!!!

这里具体做了什么我看不明白,但是我觉得这是一个非常不安全的征兆!




希望AI公司加强代码质量审查!提高代码质量!
联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-12-1 17:51:14 | 显示全部楼层
本帖最后由 晓飛飛 于 2024-12-1 17:55 编辑

建议使用ini或者xml管理各种配置信息,效率高又安全,也不会要管理员权限。
我之前在虚拟机跑winxp测试过,比win11快一倍,开拓了新思路,有条件的可以放虚拟机运行软件好了。

睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3190

回帖

4870

积分

论坛元老

积分
4870
发表于 2024-12-1 17:53:27 | 显示全部楼层
难怪启动怎么慢原理在读取注册表啊

点评

本不应这么慢!是AIappISP的代码思路错误,拖慢了效率!  发表于 2024-12-1 18:06
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-12-1 17:57:50 | 显示全部楼层
本帖最后由 VCC 于 2024-12-1 18:03 编辑
晓*** 发表于 2024-12-1 17:51
建议使用ini或者xml管理各种配置信息,效率高又安全,也不会要管理员权限。 ...

注册表里存配置信息也不需要的。

注册表本身就是windows系统提供的一个高性能键值对存储系统

只可惜STC的程序员把它用成了低性能{:5_281:}


通常比较优雅的办法就是用注册表或者用文件

注册表的话
放在 计算机\HKEY_CURRENT_USER\SOFTWARE\ 里面自己找个位置

STC选的是 计算机\HKEY_CURRENT_USER\SOFTWARE\STCISP-VC6\STC-ISP

文件的话,放在 %appdata% 目录中里面自己找个位置

比如可以把配置文件存储在 %appdata%\STCISP-VC6\STC-ISP

用注册表的优点:不需要软件里面实现这些多余的数据操作算法,不需要实现配置文件解析算法
用注册表的缺点:每次用注册表,都是一次API调用,有开销

用配置文件的优点:只有一次文件载入的API调用,其余都可以在程序代码里处理,API开销非常小
用配置文件的缺点:需要在程序中实现配置文件的CRUD算法,重复造轮子了


我倾向于用注册表,毕竟注册表的诞生就是为了存储配置信息

点评

我还是习惯用xml做配置信息,基于树形键值管理,安全又高效,哪怕软件有bug泄露也不会担心把系统注册表写烂。  详情 回复 发表于 2024-12-1 18:14
联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-12-1 17:59:53 | 显示全部楼层
本帖最后由 VCC 于 2024-12-1 18:08 编辑
晓*** 发表于 2024-12-1 17:51
建议使用ini或者xml管理各种配置信息,效率高又安全,也不会要管理员权限。
我之前在虚拟机跑winxp测试过, ...


我现在一直用winxp虚拟机跑的。应该是由于winxp比较早期,没有历史包袱,所以注册表操作的API效率很高。再低效的代码也能快速跑完

我的启动时间只要2秒

截图202412011759433503.jpg
联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-12-1 18:14:40 | 显示全部楼层
VC*** 发表于 2024-12-1 17:57
注册表里存配置信息也不需要的。

注册表本身就是windows系统提供的一个高性能键值对存储系统

我还是习惯用xml做配置信息,基于树形键值管理,安全又高效,哪怕软件有bug泄露也不会担心把系统注册表写烂。

睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2024-12-1 20:45:11 | 显示全部楼层
我在RAMDISK里跑STCISP只需要2S.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-12-1 21:24:19 | 显示全部楼层
学习
DebugLab
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-30 14:38:57

25

主题

977

回帖

3599

积分

超级版主

积分
3599
发表于 2024-12-2 09:35:19 | 显示全部楼层
学习了{:5_300:}

之前的软件版本有自动帮组用户关闭系统数字签名的功能,所以需要借助BCDEDIT工具
现在的版本这个功能已不支持,后续版本会移除BCDEDIT工具的相关代码

注册表相关的操作代码后续也会进一步优化
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-12-2 11:19:20 | 显示全部楼层
zh*** 发表于 2024-12-2 09:35
学习了

之前的软件版本有自动帮组用户关闭系统数字签名的功能,所以需要借助BCDEDIT工具

感谢关注到我的建议

顺便追问一下,移除BCDEDIT代码后,是否可以同时去除AIappISP软件必须使用管理员权限运行的强制要求?

做一个安静而强大的工具
联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:07 , Processed in 0.146438 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表