首页
社区
课程
招聘
[原创]伟大的“荣耀”—— 他不是竞品,他是友军,还能有这么体贴的友军么
发表于: 2023-5-27 15:17 6389

[原创]伟大的“荣耀”—— 他不是竞品,他是友军,还能有这么体贴的友军么

2023-5-27 15:17
6389

荣耀,一个伟大的品牌,老大哥,厚道。

本文其实不长,只是对老大哥的一个赞扬。

 

重点说明:

一阴一阳之谓道。——《易传・系辞上》

道生一,一生二,二生三,三生万物。——《道德经》

人法地,地法天,天法道,道法自然。——《道德经》

人本身生于阴阳,阴阳二气同时存在,阴阳必然和合,孤阴不长,独阳不生。

结束,重点说完了。继续讨论老大哥的问题。

 

哦,对了,还有,以下部分内容,均为站在事实角度上的个人臆测,

且个人会摆出事实,讲明道理,列出内容,不存在无端臆测。

不存在其他什么目的,仅为了弘扬,赞扬伟大的老大哥。

 

事件起因:

前一段时间,极客湾分享了一个视频,里面是对比两款笔记本的性能能力(magicbook14对比小新pro14),

地址:荣耀MagicBook 14系列上手体验:“性能释放”不一定等于性能_哔哩哔哩_bilibili

荣耀竟然比联想的产品速度快了近一倍,有意思。

由于我是做软件的,硬件方面,我不懂,但是软件方面还是可以研究研究的,

所以,我开始着手希望了解一下荣耀在软件层面上是否做了什么。

(其实我就看了几个小时,就对老大哥的奉献精神真的无比感动。有了此文。)

 

开始咯:

第一步肯定是要获取荣耀的软件,就是他们的那个电脑管家。

获取方法有两个,1:最主要的方法,就是买个他们笔记本,这不是帮他们做广告啊,看上面的视频,感觉他们的笔记本确实不错。

2:就是按照下面步骤乖乖下载,不保证是最新,但是也能看。

 

打开荣耀官网:【荣耀官网】荣耀手机-荣耀Magic5/荣耀90系列-HONOR手机 (hihonor.com)


点右上角的”服务支持“,再点”笔记本“,点下面的”电脑管家及驱动下载“,

随便输入个什么型号,



点搜索,来了个这个



下载吧,安装吧,亲兄弟。




其实里面这个 exe,也不用安装了,7z 直接解压,老大哥为了方便小弟们,连安装步骤都帮小弟们省下了。

 

开工了:


VSCode 先打开配置文件目录,看看都有啥。


各种配置文件,大部分全明文,且全中文,比那个”七八个中国人开会,会上还得飙英语,官方唯一语言是英语“ 的所谓中国公司,亲民多了。

这配置一看就懂。

 

如果感觉这配置还难懂,


老大哥特意非常体贴地,在部分配置里面还有注释。

兼职爱你入微了,

这再不会,真的教不了了。

 

找到了一个xml,不知道在哪用了?

不怕,老大哥会说,你去搜搜我代码不就知道了么。




就搜到了,体贴,细致入微,看一看他们的代码吧。

 

当我看了他们的代码之后,眼泪都快掉下来了。

导入表是这样的



导出表是这样的




接口都是实名制的,我无限感慨。

老大哥不但送配置,还送模块。

 

怀着感激的心,我进入了模块内部,想看看它内里的细节,但是这么一看,我更惊讶了。



这,不但送模块,连代码都送了?


分析结构部分可能还有点费事,但是代码层面,这代码极其规整,非常易读。



最难能可贵的是,老大哥怕我们这种小白看不懂,时不时地还有一些log形式的注释在里面,帮助我们分析思考。

简直体贴到家服务。

咋说呢,老大哥的无私奉献精神,值得我们学习,这个是肯定的。

 

都说到这里了,多少得有点带技术含量的。

所以呢,行吧,咱就开始研究研究老大哥送的模块,咱咋用。

其实不用研究。直接就用了。

这里用通用方法,找到一个简单的模块,举个最简单的例子。

 

1:找到一个指定的模块,我就用它里面的功能了,

这个模块叫做 HardwareSdk.dll 看名字,应该是个查询硬件信息的接口导出模块,

看一下它的导出函数,爱死你了,就喜欢这样的。



2:想要调用导出函数,常规方法就两种,1,LoadLiraryA GetProcAddress,2,lib 导入。

其实哪种方法都行,针对C++ Class 的导出,我比较喜欢第二种,能避免不少麻烦。

如果要用lib 导入,那么我们只有一个 dll,咋搞,其实有办法。

先去下载一个代码,https://sourceforge.net/projects/mingw/files/MinGW/Extension/pexports/

这个工具有问题,所以需要下载它的代码,然后把它编成一个exe,之后使用,

执行命令:pexports.exe HardwareSdk.dll > HardwareSdk.def

这样就生成了一个def 文件。

做过Windows 开发的,都知道 def 是啥吧。



生成的def文件,差不多就这样。

 

然后需要把def 文件打包成lib 文件,这个也不难,VS工具链中提供了一个叫lib 的工具,对,就叫这个名字,玩法就是

lib /def:HardwareSdk.def /MACHINE:x64

然后三个文件就都有了



最后还缺一个文件,是啥,头文件啊,没头文件,咋调用呢,是不,

没事,咱头文件也尝试自己生成一个。

 

咋生成,还得看def文件。

 

def文件里面的名称都很坑,都是名称粉碎后的产物,我们需要把这些名称还原,

名称还原,换一个工具,VS工具链中有个工具叫做【undname.exe】,就它了,

还原之后的名称,看着好多了



还原成这样之后,我们需要找到我们想要的那个class,找个难度低点的,由浅入深。

 

然后,我找到了一个只有三个函数的class:Keyboard

稍作整理,就还原了一个简单的类


class Keyboard
{
public:
    ~Keyboard(void);
    Keyboard(void);

    std::wstring GetKeyboardName(std::wstring&);
};


 

然后,测试代码如下


#include <iostream>
#include <string>
#include <vector>

#pragma comment(lib, "HardwareSdk.lib")

class Keyboard
{
public:
    ~Keyboard(void);
    Keyboard(void);

    std::wstring GetKeyboardName(std::wstring&);
};

void Test_Keyboard()
{
    Keyboard kb;

    std::wstring ws;
    std::wstring ret;

    ret = kb.GetKeyboardName(ws);


    std::wcout << L"ws  : " << ws;

    std::cout << std::endl;

    std::wcout << L"ret : " << ret;

    std::cout << std::endl;
}

int main()
{

    Test_Keyboard();

    system("pause");
}


编译,没问题,链接也没问题,

说明至少头文件和 lib 文件是匹配的,都没问题,

然后把编译出的文件放到荣耀电脑管家目录下,执行一下下。



有内容,有输出哦。

 

咱都搞安全的,所以这意味着什么,大家都不言自明了吧。

 

老大哥太体贴。

然后我还尝试了另外一个类


class FileProcess
{
public:
    FileProcess(void);
    ~FileProcess(void);
    void DeleteFileByPath(std::string const&, int);
    std::vector<std::wstring> GetTypeFiles(std::wstring const&, std::wstring const&);public:
    unsigned char _Buffer[8];
};


DeleteFileByPath 函数可以执行,没问题,

但是下面一个函数,就是执行不成功,我也不知道是不是缺啥东西。

(我不是在荣耀笔记本上测试的,我的笔记本是惠普,我决定用更便宜的惠普来解决我的问题,毕竟我厮的笔记本太贵了,买不起)

通过简单分析,其实也能发现,荣耀的一些驱动是针对PCI定制的,具体细节类似这样





这其实是在取厂商ID,具体这个ID是啥,我没查到,但是他们可能是知道的,

他们在平台相关的驱动【HNOs2Ec10x64.sys】里面,有一大堆 ioctl


确实功能很全面,进程相关的操作都有,而且都是明文展示给大家的。

也确实像老大哥他们说的,他们对系统性能是有管控的,很棒,很棒。

 

剩下的,具体内容具体分析吧,如果有环境,有机会,有时间,可以调试一下。

然后再回头看这些成员的使用,到时候应该会有不同的心得。

呃,至于版本问题,10、12、13、15、17、19、22,就这么几个版本,总能解决问题,我是不信他们用08的。

 

总结一下吧:

在此我谨以自己个人向老大哥荣耀,表示衷心的谢意,

他们的配置文件,为我们指引了方向。

他们的注释为我们减轻了大量工作量。

他们的log,在一些时候,减轻了我们的痛苦。

而他们,仍在默默付出。

 

 

最后,多说一句。

荣耀7万一个月招移动安全专家,

要不然,咱先5万块钱招个PC客户端安全开发,把PC这块拾掇拾掇?

别这么大出血了。

刚巧,我最近在准备换个环境。


图挂了?这个尴尬,补上,补上。

其实不想补了的,毕竟我一共就发了2个帖子,估计也没人看,但是,我有点强迫症,就补上吧。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2023-5-27 19:49 被疾光编辑 ,原因: 图挂了,这个尴尬
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 3535
活跃值: (31011)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
图挂了
2023-5-27 18:26
1
雪    币: 175
活跃值: (116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
秋狝 图挂了
补上了,呃,pedix 的编辑器啊,有点不够智能,太尴尬了。
2023-5-27 19:51
0
雪    币: 1556
活跃值: (2312)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
快进到出现在微软推荐禁止加载名单
2023-5-27 22:25
0
雪    币: 3535
活跃值: (31011)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
舒服多了
2023-5-28 20:52
1
雪    币: 2387
活跃值: (6783)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
6
没理解要分析这个软件做啥
2023-5-28 21:02
0
雪    币: 4709
活跃值: (1600)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
7
:糟了,我成替身了
2023-5-29 09:01
0
雪    币: 3944
活跃值: (2380)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
此电脑管家即彼电脑管家。
先搭台后唱戏,现在的套路。
2023-6-1 11:48
0
游客
登录 | 注册 方可回帖
返回
//