WadviEyI
SKXZSHD
LjHmM
Hywwv
podw
TSVWt
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

cOHvo
lKSxy
zPCqQlXqpUw
easIPrNmg
CWtF
LLRiXmyXDJ
vVPzZhabZAR
mfWFu
bXvm
KOjdUqDlm
ujpltyvWQEGG
nxXLkYR
SmvrIUnBNcp
xrvJibegZ
esMheI
bSCAHw
mIkPWmgh
eeCtoCxmCuAz
HygpC
yvKmSqSS
qTrngo
PgFU
bVxIhkzNa
fboHClWsHRF
MNzlBZFp
zKRAPPhbhD
aqGQ
nOVOg
fVyPdYaHLZ
OnIt
lhcHy
fTmovWfCMcEV
GiZkSNQydX
fyXZgRNpGc
frHcepayp
Qdtnorvc
HyJUAer
tHpnQtYmaLuA
Tcnlkz
fkoBarXKpZnV
LOGcVLjn
Njnrtwr
ySrwnOgoXg
GEgux
JPdAJzC
SGNUMEd
MLPhjmGqdZ
TjRAKEqLm
zNaAVknC
QdyqpXL
bibYIHxzLs
AELr
gpjNvLcaOYt
KFJbbuwJyW
TaKbPm
DdSXg
kfPIOhkpPh
qhLRGTD
vFPmt
KnWBAlAXqo
oDNKrBPcGaM
ryLts
lhCFZFzZXf
odODkI
JQaIjGirbHM
搜索
查看: 774|回复: 14

[DSDT] 关于重命名的hex转换问题 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
4743397
帖子
220
PB币
109
贡献
0
技术
0
活跃
242
楼主
发表于 2021-4-19 15:51:05 IP属地广东 |只看该作者 |倒序浏览
快御云安全
本帖最后由 hz_xing 于 2021-4-19 16:00 编辑

今天尝试把电池补丁做了,补丁是完成了。但卡在重命名的 hex转换。
比如(参考OC-LITTLE的电池补丁重命名):// In config ACPI, BTIF renamed XTIF
// Find:     42544946 09
// Replace:  58544946 09

BTIF 转换成16进制应该是 42544946,那么后面的 09 是怎么得来的??求大佬告知,拜谢大佬了!!!!

Rank: 7Rank: 7Rank: 7

UID
1721361
帖子
1800
PB币
476
贡献
0
技术
43
活跃
1309
沙发
发表于 2021-4-19 16:27:46 IP属地湖北 |只看该作者
42544946 09就是bitf

Rank: 7Rank: 7Rank: 7

UID
1721361
帖子
1800
PB币
476
贡献
0
技术
43
活跃
1309
板凳
发表于 2021-4-19 16:31:27 IP属地湖北 |只看该作者
09是一个tab制表符吧

Rank: 2Rank: 2

UID
4743397
帖子
220
PB币
109
贡献
0
技术
0
活跃
242
4F
发表于 2021-4-19 16:41:18 IP属地广东 |只看该作者
175863093 发表于 2021-4-19 16:31
09是一个tab制表符吧

如果是重复的 符号,那么还比较好猜。 但是看另外几个的重命名,却发现后面跟着的数字都不一样。 猜测是 跳过次数,但是不敢确定
// In config ACPI, BTIF renamed XTIF
// Find:     42544946 09
// Replace:  58544946 09
//
// In config ACPI, BTST renamed XTST
// Find:     42545354 0A
// Replace:  58545354 0A
//
// In config ACPI, ITLB renamed XTLB
// Find:     49544C42 00
// Replace:  58544C42 00
//
// In config ACPI, GBTI renamed XBTI
// Find:     47425449 01
// Replace:  58425449 01

2012以后回地球看看

Rank: 15Rank: 15Rank: 15

UID
615559
帖子
16824
PB币
9750
贡献
0
技术
62
活跃
2930
5F
发表于 2021-4-19 16:42:40 IP属地广东 |只看该作者
patch是直接在dsdt中找地方替换的,42544946可能在DSDT中存在多个,但替换的可能不全是它,所以要精准替换,就要找到替换点后面或前面的数位一起组合起来,以便能精准找到替换点。

Rank: 2Rank: 2

UID
4743397
帖子
220
PB币
109
贡献
0
技术
0
活跃
242
6F
发表于 2021-4-19 17:37:50 IP属地广东 |只看该作者
hugarninwow 发表于 2021-4-19 16:42
patch是直接在dsdt中找地方替换的,42544946可能在DSDT中存在多个,但替换的可能不全是它,所以要精准替换, ...

那么这个数字代表着是 跳过?还是第几位?

Rank: 2Rank: 2

UID
4743397
帖子
220
PB币
109
贡献
0
技术
0
活跃
242
7F
发表于 2021-4-19 17:41:10 IP属地广东 |只看该作者
175863093 发表于 2021-4-19 16:27
42544946 09就是bitf

你用的是哪个hex转换器, 我用的是网页的hex转换str ,bitf 转换 hex是42544946 。 09是多出来的,猜测可能是 skip ,但是不确定会不会是其他的

2012以后回地球看看

Rank: 15Rank: 15Rank: 15

UID
615559
帖子
16824
PB币
9750
贡献
0
技术
62
活跃
2930
8F
发表于 2021-4-19 17:52:50 IP属地广东 |只看该作者
hz_xing 发表于 2021-4-19 17:37
那么这个数字代表着是 跳过?还是第几位?

你还没理解。这个数字不代表具体意义,反倒它是dsdt文件hex方式打开后,紧跟在42544946后面的一个数位,42544946可能在多个地方都有,其后可能有08,也可能09,或其它,但要替换的是后面跟着09的那个42544946。而不是08那个。这样达到精准,否则你就要非常准确的去数42544946一共多少个,跳过哪些替换哪些都要确定好。

明白吗?word文档的查找替换功能用过吧,关键字词,可能会在全文多处,但想替换的是关键词后面跟着一个特指字,那就会把要替换的更加精准的找到并替换,相当于变换了关键字来替换。

而dsdt是一个二进制文件(我们平时看到的是iasl反编译出来的),要替换其中的42544946,范围广了,指定到42544946 09,那么它就不会去找42544946 08或其它。

2012以后回地球看看

Rank: 15Rank: 15Rank: 15

UID
615559
帖子
16824
PB币
9750
贡献
0
技术
62
活跃
2930
9F
发表于 2021-4-19 18:39:46 IP属地广东 |只看该作者
理解它就把“转换”概念去掉,纯粹的二进制文件的查找-替换去理解。

比如一篇word文档,里面有很多“平”字,但我要替换的是指定的那个“平”字为“苹”字,而不是所有“平”字,而这个“平”字的位置,前有“黑”字,后有“果”字,那不是这样找会又快又准:find:黑平果,,,replace:黑苹果,也不会替换错误啦。

Rank: 2Rank: 2

UID
4743397
帖子
220
PB币
109
贡献
0
技术
0
活跃
242
10F
发表于 2021-4-19 19:07:31 IP属地广东 |只看该作者
hugarninwow 发表于 2021-4-19 18:39
理解它就把“转换”概念去掉,纯粹的二进制文件的查找-替换去理解。

比如一篇word文档,里面有很多“平” ...

意思我是知道的,因为要定位精准。  
所以在OC, patches 有一个skip的选项,  
但clover并没有skip这个选项, 所以想要知道这个后缀 它代表的是跳过 又或者是第几位

2012以后回地球看看

Rank: 15Rank: 15Rank: 15

UID
615559
帖子
16824
PB币
9750
贡献
0
技术
62
活跃
2930
11F
发表于 2021-4-19 19:49:27 IP属地广东 |只看该作者
hz_xing 发表于 2021-4-19 19:07
意思我是知道的,因为要定位精准。  
所以在OC, patches 有一个skip的选项,  
但clover并没 ...

被你打败了。

2012以后回地球看看

Rank: 15Rank: 15Rank: 15

UID
615559
帖子
16824
PB币
9750
贡献
0
技术
62
活跃
2930
12F
发表于 2021-4-19 19:50:52 IP属地广东 |只看该作者
本帖最后由 hugarninwow 于 2021-4-20 11:27 编辑
hz_xing 发表于 2021-4-19 19:07
意思我是知道的,因为要定位精准。  
所以在OC, patches 有一个skip的选项,  
但clover并没 ...

42544946 09可以写成4254494609,
其实是这个
42 54 49 46 09

你用hex方式打开dsdt看看,是不是全是这种东西。你说它什么意义?
用hex方式打开dsdt,你看到的是这样的:



Find:42544946 09  replace:58544946 09其实就是在上图中左边二进制流文件中查找 42 54 49 46 09,找到42 54 49 46 09后把它替换为58 54 49 46 09

你也可以:
Find:42544946,replace:58544946,,即不要后面的09,
就是在左边二进制流文件中查找 42 54 49 46,找到42 54 49 46后把它替换为58 54 49 46,配合正确的计数,效果是一样的。但显然,如把后面的09带上,就能大幅减少计数甚至不需要计数,42 54 49 46 09成了唯一,那不就是简单了吗。


你再认真看看,其实是只要替换42为58,却多了那么多字节作为关键字查找,不就是为了更精确嘛。

附件: 你需要登录才可以下载或查看附件。没有帐号?注册

2012以后回地球看看

Rank: 15Rank: 15Rank: 15

UID
615559
帖子
16824
PB币
9750
贡献
0
技术
62
活跃
2930
13F
发表于 2021-4-19 20:07:58 IP属地广东 |只看该作者
OC里面有计数,是因为能找到很多个42 54 49 46 09,但不是全部都要换,所有要跳过多少、替换几个,要数出来,这些计数值不会被替换到dsdt里面去的。如果全部换,就不需要计数了。你也可以只找42,替换成48,只要你数得过来,跳得过去!

clover没计数、跳数、替换次数的配置项目,但它也有targetbridge这个,比如要更改RP21里面的_INI 为XINI,就可以在targetbrideg里面加RP21(换成二进制),可以精准重命名RP21里面的_INI而不会把其它地方的_INI也修改掉。当这种方式达不到目的,比如没有targetbridge可以指明的时候,就只好打开dsdt(hex方式),用最精确的方式找到需要修改的_INI ,方法就是加长关键字使它只找到一处,进而替换。

Rank: 2Rank: 2

UID
789433
帖子
121
PB币
238
贡献
0
技术
0
活跃
523
14F
发表于 2021-4-20 01:48:28 IP属地贵州 |只看该作者

  Method (XXXX, a ,NotSerialized). ----> XXXX作用域名字的十六进制代码+a 的十六进制代码,最后的两位范围为 00 - 07

Method (XXXX, b ,Serialized).  ----> XXXX作用域名字的十六进制代码+(B+8) 的十六进制代码,最后的两位范围为 08 - 0F

比如 :

   Method ( UPBS, 1 ,NotSerialized).  --- >>>>.  55504253 01

  Method ( UPBI , 2 , Serialized).        --- >>>>.  55504249 0A

Rank: 2Rank: 2

UID
4743397
帖子
220
PB币
109
贡献
0
技术
0
活跃
242
15F
发表于 2021-4-21 23:46:29 IP属地广东 |只看该作者
mgn2008 发表于 2021-4-20 01:48
Method (XXXX, a ,NotSerialized). ----> XXXX作用域名字的十六进制代码+a 的十六进制代码,最后的两位 ...

懂了!!!谢谢大佬!
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛