游客:
注册
|
登录
会员
|
搜索
|
统计
|
帮助
轩辕春秋文化论坛
»
步步为营
» [纯吐槽]dos可执行文件mz exe格式 [已更新]
兴唐传·瓦岗山异闻录(20150519版)发布
(2015-5-19)
论坛营运现状公告
(2014-8-10)
三国志12pk版下载
(2013-4-20)
《精忠报国岳飞传》制作组对外开放
(2013-1-16)
岳飞传解密剧本发布
(2011-4-12)
招募各版斑竹和网站管理技术人员
(2006-4-19)
<< 上一主题
|
下一主题 >>
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
|
开通个人空间
|
加入资讯
标题: [纯吐槽]dos可执行文件mz exe格式 [已更新]
likelove
组别
百姓
级别
在野武将
功绩
0
帖子
37
编号
56074
注册
2005-12-27
#1
发表于 2014-10-31 17:19
资料
短消息
只看该作者
[纯吐槽]dos可执行文件mz exe格式 [已更新]
tags:dos, mz exe, segment
首先dos exe(MZ格式)是彻底坑爹货啊,那个文件头语焉不详啊!只有大小啊、入口啊、重定位表啊,传说中的code, data, bss段都没有啊,没有段信息让人去哪找空间啊!!
ida pro也是坑啊,seg1, seg2..., dseg,有模有样啊,可文件中丝毫找不到分段信息啊!!原来这是智能分析得来的啊!
wdasm比较实在啊,从头到尾过一遍啊,到ffff换一段啊,不分data和code啊!!就纳了闷了,同样都是作反汇编的,差距怎么就这么大泥??
我大度娘实在不太好用啊,除了广告你找不到什么有用的啊,谁用谁知道啊。bing凑合用一下,什么你说谷歌,这是个什么东东啊,是美女吗??
还是老外实在,说这个dos啊,嗯嗯,这个Dos,它是没有segment的,这是码农的一相情愿啊,code, data都是混在一起的,说他是code它就是code,说是data就是data,读写运行没限制啊,传说中的实模式。这次算是懂了啊 T_T
这个exe修改难以完成啊,你要考虑找块不用的空地啊,代码都很紧凑,没处找啊,涉及到调用还得重定位啊,自虐啊
--------
有感于mz exe格式的分析,修改
[
本帖最后由 likelove 于 2014-11-28 09:01 编辑
]
[广告]
《精忠报国岳飞传完整版》火热发布
likelove
组别
百姓
级别
在野武将
功绩
0
帖子
37
编号
56074
注册
2005-12-27
#2
发表于 2014-10-31 17:29
资料
短消息
只看该作者
初步想三国英杰传的一处修改
在CalculateActionValue这个调用里,找个合适位置,跳到空地,再调用GetCharName取得武将名称,把目标坐标,该处的物理伤害、策略伤害值,用ShowMsg打印出来,辅助练级。(上面这些调用是在ida中自定的)
目前已知的空位是@BD50有1000字节空位、@FB50有1800h空位、@11F50有600空位,只是不知这些地方程序用不用的到。重定位表空间充足,不会构成麻烦。
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
likelove
组别
百姓
级别
在野武将
功绩
0
帖子
37
编号
56074
注册
2005-12-27
#3
发表于 2014-11-1 17:54
资料
短消息
只看该作者
忙活了半天的成果,显示NPC行动价值,但貌似在什么地方改变了行动价值,NPC不好好战斗了
下载后请改为exe,仅供测试
ps: 不太好解决,判断行动价值过程用到一个变量,不在堆栈中,而在一块公共区域,会被写屏数据用到,所以就被覆盖掉了…………
不知道怎么能绕过去。
ps:看行动价值请下载11L的附件
[
本帖最后由 likelove 于 2014-11-26 14:14 编辑
]
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
阿尔法孝直
(雀力日进)
闽国公
遂安军节度使
★★★★★★
组别
节度使
级别
卫将军
好贴
2
功绩
1796
帖子
6036
编号
19070
注册
2004-10-16
家族
轩辕雀党
#4
发表于 2014-11-2 23:54
资料
个人空间
短消息
只看该作者
同感,以前改英杰传,费劲千辛万苦找到某个函数的地址,然后大改特改。改完再用IDA Pro重新分析的时候发现代码段数据段 什么的全变了,程序变得面目全非不能运行了。
PS:谁有MZ EXE转32位汇编EXE的转换工具?
[广告]
真诚支持说岳,携手共创辉煌
likelove
组别
百姓
级别
在野武将
功绩
0
帖子
37
编号
56074
注册
2005-12-27
#5
发表于 2014-11-3 09:28
资料
短消息
只看该作者
QUOTE:
原帖由
阿尔法孝直
于 2014-11-2 23:54 发表
同感,以前改英杰传,费劲千辛万苦找到某个函数的地址,然后大改特改。改完再用IDA Pro重新分析的时候发现代码段数据段 什么的全变了,程序变得面目全非不能运行了。
PS:谁有MZ EXE转32位汇编EXE的 ...
是的,调用程序中函数时会遇到这问题,在文件头的重定位表中得添加重定位项。DOS文件的最大问题是不分段,没办法增加空间。改大文件新增内容都放最后也不靠谱,因为不知道那一段代码发神经就给用了
针对前面的bug,最近在看能不能调用直接写屏的功能
简述一下重定位表:
dos程序在内存中是按 段址:偏移来寻址 比如1c00:2233 (都是16进制) = 1c00*10+2233 = 1c000+2233 = 1e233
重定位项数和第一项的位置在文件头中有规定,对每一项(2个word),第1个word是偏移,第2个word是段,这两个决定了程序要修正内容的位置。当程序被加载到非期望的位置,用重定位表就可以修正指定的这些位置,保证段址都是正确的
比如在内存 0:9A00这个位置有调用 call 1c00:2233,那么需要先查下语句中1c00这个段址在内存中的位置,在这里是9a00+3=9a03,然后在重定位表中加一项 0:9A03。如现在程序加载位置整体上移了1000(相对于段),重定位表会将 call 1c00:2233 修正为 call 2c00:2233
16转32应该是没有,体系不大一样
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
阿尔法孝直
(雀力日进)
闽国公
遂安军节度使
★★★★★★
组别
节度使
级别
卫将军
好贴
2
功绩
1796
帖子
6036
编号
19070
注册
2004-10-16
家族
轩辕雀党
#6
发表于 2014-11-3 14:15
资料
个人空间
短消息
只看该作者
回想起这么一件事:因为DOSBOX能将DOS程序放在XP下面运行,说明DOSBOX本身自带MZ转PE的翻译程序。于是我试着用OD调试DOSBOX,运行英杰传程序后,也确实找到了部分已经被转出来的32位汇编代码。接着,我在人物行动价值的地方下了一个断,雷死人的事情发生了:在我方回合结束后,系统直接进入下一个回合了!
PS:我是知道重定向这么一回事的,当时以为在DLL文件里面才有(因为DLL的装载地址是不确定的,而DLL里面可能有全局变量)。如果只是改函数里面的内容,入口地址不变,应该不需要改重定向表吧?
[
本帖最后由 阿尔法孝直 于 2014-11-3 14:19 编辑
]
[广告]
真诚支持说岳,携手共创辉煌
likelove
组别
百姓
级别
在野武将
功绩
0
帖子
37
编号
56074
注册
2005-12-27
#7
发表于 2014-11-3 14:55
资料
短消息
只看该作者
QUOTE:
原帖由
阿尔法孝直
于 2014-11-3 14:15 发表
回想起这么一件事:因为DOSBOX能将DOS程序放在XP下面运行,说明DOSBOX本身自带MZ转PE的翻译程序。于是我试着用OD调试DOSBOX,运行英杰传程序后,也确实找到了部分已经被转出来的32位汇编代码。接着,我在人物行 ...
哈哈,没想过这个手段调试
DOS调试是个大问题,一般办法搞不定
经过探索,用虚拟机vmware比较好,里面装纯dos,用softice调试,随时可保存快照,恢复比较方便
另外,window下重定位确实也就dll需要,EXE基本不需要了,还是好很多
[广告]
《精忠报国岳飞传完整版》火热发布
0dragon
组别
百姓
级别
在野武将
功绩
0
帖子
45
编号
290650
注册
2008-8-26
#8
发表于 2014-11-12 17:22
资料
短消息
只看该作者
小菜鸟路过 顶顶大神
[广告]
《精忠报国岳飞传完整版》火热发布
likelove
组别
百姓
级别
在野武将
功绩
0
帖子
37
编号
56074
注册
2005-12-27
#9
发表于 2014-11-19 22:17
资料
短消息
只看该作者
继续分析,有点进展,修改后的文件还不完善,还得改。
程序里还有些隐藏的内容,找到一个
:
dos版的main.exe,用winhex之类的工具打开,在偏移22274这个位置(注意是16进制数),把09改成0A,可以把功能菜单中的音乐时间打开,效果如图
图片附件
:
menu1.JPG
(2014-11-19 22:17, 125.92 K)
[广告]
真诚支持说岳,携手共创辉煌
阿尔法孝直
(雀力日进)
闽国公
遂安军节度使
★★★★★★
组别
节度使
级别
卫将军
好贴
2
功绩
1796
帖子
6036
编号
19070
注册
2004-10-16
家族
轩辕雀党
#10
发表于 2014-11-19 22:43
资料
个人空间
短消息
只看该作者
回复 #9 likelove 的帖子
印象中这个秘籍用猛了会导致所有人的三围都变成1,然后武器的威力变得非常猛……
[广告]
真诚支持说岳,携手共创辉煌
likelove
组别
百姓
级别
在野武将
功绩
0
帖子
37
编号
56074
注册
2005-12-27
#11
发表于 2014-11-22 15:22
资料
短消息
只看该作者
战斗时在最上方打印行动价值,可以用了
输出内容:武将名及其序号 行动坐标 该处行动价值 物理攻击对象 物理价值 策略 策略对象 策略价值
注意:debug菜单中有个演示功能,以前网上改的版本是不能用的(因为相关提示信息是日文的,程序会死掉),附件这个版本是没这个问题,你可以让刘备军自己和敌军斗
[
本帖最后由 likelove 于 2014-11-28 09:04 编辑
]
附件
:
MAIN2.rar
(2014-11-22 15:22, 98.7 K)
该附件被下载次数 232
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
heyou
★★
组别
校尉
级别
讨逆将军
功绩
27
帖子
670
编号
306697
注册
2009-1-20
#12
发表于 2019-4-14 22:39
资料
个人空间
短消息
只看该作者
回复 #11 likelove 的帖子
演示功能很棒!!!很有趣
如果可以的話
有沒有修正過演示,但不顯示行動價值的版本
既然是已經發生的事,希望畫面上方能清爽點
甚至希望左上角座標的字可以小一點(或者移到左下角)
謝謝
[
本帖最后由 heyou 于 2019-4-14 22:46 编辑
]
[广告]
《精忠报国岳飞传完整版》火热发布
heyou
★★
组别
校尉
级别
讨逆将军
功绩
27
帖子
670
编号
306697
注册
2009-1-20
#13
发表于 2019-4-14 22:47
资料
个人空间
短消息
只看该作者
覺得這個才是真正的debug mode啊!
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
likelove
组别
百姓
级别
在野武将
功绩
0
帖子
37
编号
56074
注册
2005-12-27
#14
发表于 2019-4-18 18:07
资料
短消息
只看该作者
QUOTE:
原帖由
heyou
于 2019-4-14 22:39 发表
演示功能很棒!!!很有趣
如果可以的話
有沒有修正過演示,但不顯示行動價值的版本
既然是已經發生的事,希望畫面上方能清爽點
甚至希望左上角座標的字可以小一點(或者移到左下角)
謝謝
调试了修改脚本,直接修改原始文件的内存代码,实现以上功能,见附件,其中提供了原始文件
附件
:
sanyorg.rar
(2019-4-18 18:07, 110.83 K)
该附件被下载次数 125
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
heyou
★★
组别
校尉
级别
讨逆将军
功绩
27
帖子
670
编号
306697
注册
2009-1-20
#15
发表于 2019-4-18 19:01
资料
个人空间
短消息
只看该作者
回复 #14 likelove 的帖子
首先謝謝你對素未謀面的人抽空修改
我原本是用
#11
的附件 MAIN2.rar
解壓縮後的檔案改名為MAIN.EXE
就可以在DOSBOX上運行,也可以玩到超棒的演示功能
這個新附件好像不是這樣
請問一下,我解壓縮新附件,裡面的MAIN.exe 還是1995年,似乎是原始檔案
還有dt.exe & dt.ini
這是要怎麼使用呢?
謝謝
[广告]
真诚支持说岳,携手共创辉煌
likelove
组别
百姓
级别
在野武将
功绩
0
帖子
37
编号
56074
注册
2005-12-27
#16
发表于 2019-4-19 08:15
资料
短消息
只看该作者
QUOTE:
原帖由
heyou
于 2019-4-18 19:01 发表
首先謝謝你對素未謀面的人抽空修改
我原本是用 #11 的附件 MAIN2.rar
解壓縮後的檔案改名為MAIN.EXE
就可以在DOSBOX上運行,也可以玩到超棒的演示功能
這個新附件好像不是這樣
請問一下,我解壓縮新附件 ...
dt就是修改器,参见
http://xycq.online/forum/thread-304542-1-1.html
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
heyou
★★
组别
校尉
级别
讨逆将军
功绩
27
帖子
670
编号
306697
注册
2009-1-20
#17
发表于 2019-4-21 10:55
资料
个人空间
短消息
只看该作者
那請問你以前有修正演示功能,但沒有其他輸出內容的MAIN.exe檔嗎?
[广告]
真诚支持说岳,携手共创辉煌
投票
交易
悬赏
活动
正在浏览此帖的会员 - 共
1
人在线
轩辕春秋文化论坛
轩辕史话
> 炎黄春秋
> 我思我在
> 法律探讨
> 三国史话
春秋文艺
> 古典小说
> 诗词歌赋
> 现代文艺
> 韦编三绝
> 对联雅座
> 滴翠亭
> 藏经阁
> 双七钟社
> 笑书神侠
> 辕门射虎
> 虎帐点兵
游戏人生
> 同人战棋手游
> 三国戏英杰传
> 三国鼎立
> 轩辕公会
> 三国志12
> 英雄史诗
> 运筹帷幄
> 人间五十年
> 步步为营
> 游行天下
> 游戏贴图
轩辕工作室
> 兴唐传·瓦岗山异闻录
> 豪华曹操传
> 精忠报国岳飞传
> 《精忠报国岳飞传》制作组
> 大一统演义
> 曹操传MOD作品交流
> 东吴霸王传
> 封神英杰传
> 杨家将
> 吕布传
> 三国无双战略版
> 北宋志·赵匡胤传
> 战旗春秋
> 曹操传MOD制作交流
> 金庸群侠传MOD交流
> 风华录
> 设计与修改
怡情岁月
> 影音经典
> 动漫先锋
> 绘画摄影
> 情感轩辕
> 衣食住行
> 体坛动力
> 谈股论金
> 水泊轩辕
参政议政
> 迎宾阁
> 鸿胪寺
> 登闻鼓
> 监造府
当前时区 GMT+8, 现在时间是 2025-1-19 02:19
京ICP备2023018092号
轩辕春秋
2003-2023 www.xycq.org.cn
Powered by
Discuz!
5.0.0
2001-2006
Comsenz Inc.
Processed in 0.015764 second(s), 13 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
轩辕春秋
-
Archiver
-
WAP
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
基本概况
论坛排行
主题排行
发帖排行
积分排行
管理团队
管理统计