无忧启动论坛

标题: winhey修改引导文件能不能增加长度????? [打印本页]

作者: 2012ko5544    时间: 2012-4-30 09:48
标题: winhey修改引导文件能不能增加长度?????
一般在做PE合盘时 大家多多少少都会用修改引导记录的方式来解决重名问题吧? 但如果通过新建文件夹,把各个PE放在自己文件夹中,在再修改bin,在对应的路径中加上文件夹的名字,这样来引导对应的PE, 不知各位觉得怎样?
但问题就是 bin文件的长度会变大,不知能不能用。   说明一下,bin中的引导路径变长,我们把其他内容依次向后移位~~
作者: fujianabc    时间: 2012-5-5 18:17
不能                                   
作者: 2012ko5544    时间: 2012-5-6 08:50
标题: 回复 #2 fujianabc 的帖子
相当于插入一段内容,原先内容并没有删除~为何不能呢?
作者: zhs509    时间: 2012-5-6 08:54
先备份下文件,自己实践下不就清楚了吗?
作者: fujianabc    时间: 2012-5-6 17:23
原帖由 2012ko5544 于 2012-5-6 08:50 发表
相当于插入一段内容,原先内容并没有删除~为何不能呢?

你如果用过dos下的debug就会明白,那些都是十六进制机器指令,随便改动文件长度,原先内容中的JMP之类的转跳指令就会出错。
除非你会反汇编,把其中转跳指令涉及的地址全部手动改掉
作者: 2012ko5544    时间: 2012-5-7 15:59
标题: 回复 #5 fujianabc 的帖子
你的意思是 那个引导记录是按照固定长度拆分一段一段的,如果总长度变了,那么原本的拆分点就没有拆开,而不该拆分的地方却被拆开了。。造成无法启动是吗?
作者: fujianabc    时间: 2012-5-7 19:36
原帖由 2012ko5544 于 2012-5-7 15:59 发表
你的意思是 那个引导记录是按照固定长度拆分一段一段的,如果总长度变了,那么原本的拆分点就没有拆开,而不该拆分的地方却被拆开了。。造成无法启动是吗?

指令长度都是固定的,比如某指令是读取路径,从第100个字节处读取10个字节长度的路径,然后继续执行后面的指令。
但如果你把路径改成了11个字节的长度,读取指令只会读取前10个字节,第11字节会被当成下一条指令的,从而造成后续指令全部出错,并且路径也没读对。

除非你能读懂整个引导记录的机器代码,改动所有相关指令才行,会debug的高手能够做到这一点。

[ 本帖最后由 fujianabc 于 2012-5-7 19:37 编辑 ]




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3