离了就想 发表于 2018-7-13 07:35

dsdt,ssdt联合反编译小白教程

本帖最后由 离了就想 于 2018-7-13 15:44 编辑

首先,下载iasl, iasl的下载地址如下1.win版iasl程序https://www.acpica.org/downloads/binary-tools


2.mac版iasl程序https://bitbucket.org/RehabMan/acpica/downloads/

在win下反编译dsdt,ssdt的方法如下
下载解压后的win版iasl文件夹是下边这个样子

我们把里面的iasl.exe程序复制到我们提取的dsst,ssdt所放置的文件夹
然后打开命令行窗口(就是dos窗口)
用鼠标右键点击开始菜单

按照上图操作,在打开的命令行窗口输入cd命令,然后按一下空格(cd+空格)接着输入我们dsdt等文件所在文件夹的路径

如果不知道我们存放dsdt,ssdt,iasl的文件夹的路径怎么写,可以按照下面的方式进行操作。打开我们存放dsdt,ssdt,iasl文件的文件夹

然后用鼠标左键点击地址栏,地址栏里是路径


回车后接着就可以反编译了

命令式.\iasl -da -dl *.aml(.\iasl      -da   -dl      *.aml中间都用一个空格隔开)


为了减少编译后的文件的错误我们可以按照下面的方式操作新建一个refs.txt文档,然后把下面的内容复制进去External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj, 0)
External(_SB.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB.PCI0.LPCB.H_EC.ECMD, MethodObj, 1)
External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)External(_GPE.VHOV, MethodObj, 3)External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)
保存后把refs.txt文件复制到dsdt,ssdt,iasl所在文件夹然后把上面步骤里的命令换成.\iasl -da -dl -fe refs.txt DSDT.* SSDT*.aml(还是要注意用空格间隔)


上面保存的refs.txt同样适用于mac下,在mac下反编译时,我们可以把它和dsdt,ssdt一起准备好下面就说说在mac下反编译dsdt,ssdt的方法。
首先把windows下弄好的dsdt,ssdt,refs.txt,拷贝到mac桌面,你也可以放在别的在mac系统能改写文件的磁盘(mac系统对于NTFS格式的磁盘只支持读,不支持写)。

然后解压出mac版的iasl文件,如果你不需要下载就有这文件,那么尽量用高版本的,低版本的对某些参数不支持,比如2014版的iasl,就不支持-da -dl参数。我当时就是用的2014版的,但是反编译不了,找毛病找了很久,希望大家少走弯路。我下面的视频就列出了一些出问题的地方,看看你的对上号了吗?
我也把下载iasl放在了桌面iasl文件夹。先把zip压缩格式的iasl拷贝到桌面(在mac用拷贝黏贴就相当于Windows下的复制黏贴,mac的复制是别的意思)然后双击那个zip文件,就解压出了iasl文件(大家结合视频看,一会儿附上视频链接)
然后点击桌面上面的前往------前往文件夹

接下来要输入路径/usr/bin有的版本的系统要输入/usr/local/bin路径。新手这里容易出错的地方是。/要在英文输入法下写,中文输入法下写完提示找不到路径

然后把我们的iasl文件拖拽到打开的bin文件夹里,你也可以拷贝进去,按照提示输入系统密码就好了,不懂看视频操作
然后打开终端,输入cd+空格+我们保存dsdt等文件的文件夹的路径,这里我们可以直接把文件夹拖拽到终端,然后回车
下面就可以在终端输入命令进行反编译了。我一开始用的时2014版的iasl,使用iasl -da -dl *.aml(注意iasl后,-da后,-dl后有一个空格)使用iasl -da *.aml    iasl -dl *.ml反编译都失败了。失败原因可能就是iasl版本太低,换了2018版的就好了。
为了减少错误在保存dsdt,ssdt的文件夹里加入我们Windows下做好的refs.txt然后使用命令iasl -da -dl -fe refs.txt DSDT.aml SSDT*.aml。我当时在这里也出错了。我保存的dsdt,ssdt的wenjian的文件名是大写字母的。用iasl -da -dl *.aml时没出毛病。到了这里就不行了,所以大家要注意命令里的dsdt和ssdt的大写要和文件名对应啊,还有注意别把.写成。
下面附上视频地址:http://player.youku.com/embed/XMzcyMDgwODUyOA

chencong0728 发表于 2018-7-13 08:29

mac下面的教程也是一样的吗?

wo02288797 发表于 2018-7-13 08:59

支持楼主,很适合小白

loveqp 发表于 2018-7-13 09:11

支持楼主的教程

小淳 发表于 2018-7-13 09:47

这个教程是近期少有的精品,谢谢楼主

eastlhu 发表于 2018-7-13 10:23

期待楼主的hotpatch教程

Aimisoy糊涂 发表于 2018-7-13 11:22

请问ubuntu提取的无文件扩展名,怎么先转换成aml,在通过此办法转换成DSL.

Hxinjy 发表于 2018-7-13 11:28

楼主有MAC版的教程吗

离了就想 发表于 2018-7-13 11:50

Aimisoy糊涂 发表于 2018-7-13 11:22 https://www.pcbeta.com/static/image/common/back.gif
请问ubuntu提取的无文件扩展名,怎么先转换成aml,在通过此办法转换成DSL.

直接改名就行

离了就想 发表于 2018-7-13 11:51

Hxinjy 发表于 2018-7-13 11:28 https://www.pcbeta.com/static/image/common/back.gif
楼主有MAC版的教程吗

一会就上传,做了个和视频相结合的

Aimisoy糊涂 发表于 2018-7-13 11:54

离了就想 发表于 2018-7-13 11:50 https://www.pcbeta.com/static/image/common/back.gif
直接改名就行

嗯嗯,请问增加了refs重新编译后出来的文件全部大了1KB,这个txt是不是错了?

离了就想 发表于 2018-7-13 15:37

Aimisoy糊涂 发表于 2018-7-13 11:22 https://www.pcbeta.com/static/image/common/back.gif
请问ubuntu提取的无文件扩展名,怎么先转换成aml,在通过此办法转换成DSL.

直接改名就行

离了就想 发表于 2018-7-13 15:39

Aimisoy糊涂 发表于 2018-7-13 11:54 https://www.pcbeta.com/static/image/common/back.gif
嗯嗯,请问增加了refs重新编译后出来的文件全部大了1KB,这个txt是不是错了?

我这个是直接从大神们的复制过来的,应该没错,使用后的确少了些错误和警告

天地XIN 发表于 2018-7-13 18:05

支持楼主{:5_280:}

zfx2012 发表于 2018-7-13 18:10

这个写的不错

Hxinjy 发表于 2018-7-13 18:58

离了就想 发表于 2018-7-13 11:51 https://www.pcbeta.com/static/image/common/back.gif
一会就上传,做了个和视频相结合的

嗯呐,谢谢楼主

lee599118 发表于 2018-7-13 23:17

这个厉害,谢谢~

z6413y 发表于 2018-7-14 07:53


支持楼主{:5_280:}

ae1016869375 发表于 2018-7-14 09:16

支持,造福小白

jakolly 发表于 2018-7-19 16:23

这个厉害,谢谢~
页: [1] 2 3
查看完整版本: dsdt,ssdt联合反编译小白教程