| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1426 人关注过本帖
标题:【自己转自己的】一个单晶解析辅助软件XShell v6.3.1 FVAR行=号bug的解决方 ...
取消只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
 问题点数:0 回复次数:2 
【自己转自己的】一个单晶解析辅助软件XShell v6.3.1 FVAR行=号bug的解决方案
【原创】一个单晶解析辅助软件XShell v6.3.1 FVAR行=号bug的解决方案

原帖地址 http://www.

;*****************************************************************************************************************
;作者:zklhp  
;Email:zklhp@
;QQ:493165744
;版权所有    转载请保持完整
;本文首发在X64汇编论坛 http://www.
;*****************************************************************************************************************

**********提示 本文作者不保证本文介绍内容的可靠性 因本文及相关内容导致的一切后果由使用者自行承担**********

我先发这里 然后转载去其他地方 一来发这里稳定不会被删 二来可以顺便宣传一下我们网站。。

作者介绍 90后 一名药学专业本科生 业余时间喜欢玩玩汇编语言 逆向 破解 病毒一类的东西懂一点 发这个的目的是方便大家 没有其他的意思。。。

本文讲的是一个专业软件某个bug的修复 比较简单 而且逆向及Patch文件属于违法的罢 内容上也牵扯专业知识 总之 不喜欢的可以无视了

XShell Bruker出的一个辅助进行单晶解析的图形化软件 貌似老版本的作者已经去世了 现在的最新版是6.3.1

软件是这个样子的

图片附件: 游客没有浏览图片的权限,请 登录注册


图里的结果是Peter Muller(呃 u是u上面加两点 我怕打出来不好发。。)书里的一个例子、、、

我个人比较喜欢这个程序 但专家对它尤其是新版的评价很低 原因是bug比较多 这个确实 不过我感觉 如果只是看看res 命名 删原子一类的操作用这个还是比较好的

但bug多让人受不了 尤其是 在我解一个多重无序的结构的时候 FVAR行写了好几个很多占有率信息

bug出现了、、、

FVAR 0.600000 0.573110 0.412580 0.439350 0.690960 0.658530 0.660410

如果是这样的一行 保存后变成了

FVAR 0.600000 0.573110 0.412580 0.439350 0.690960 0.658530 =
0.660410

而 这样会导致xl精修报 ** BAD CONTINUATION LINE **

正确的写法是写成两行 不用等号 像这样

FVAR 0.600000 0.573110 0.412580 0.439350 0.690960 0.658530
FVAR 0.660410

但软件设计的时候的失误导致了这个bug

什么设计的失误呢? 上逆向出的汇编代码 看不懂的可以无视。。

004301C5   .  8B85 08FFFFFF MOV EAX,DWORD PTR SS:[EBP-F8]
004301CB   .  83C0 01       ADD EAX,1
004301CE   .  8985 08FFFFFF MOV DWORD PTR SS:[EBP-F8],EAX
004301D4   .  83BD 08FFFFFF>CMP DWORD PTR SS:[EBP-F8],6
004301DB   .  75 3B         JNZ SHORT 复件_xsh.00430218
004301DD   .  8B0D 2CC57E00 MOV ECX,DWORD PTR DS:[7EC52C]
004301E3   .  83E9 01       SUB ECX,1
004301E6   .  398D 28FFFFFF CMP DWORD PTR SS:[EBP-D8],ECX
004301EC   .  7D 2A         JGE SHORT 复件_xsh.00430218

简单来说 程序的思路是 写到第六个值后加等号(加等号部分代码没放 有兴趣可以自己看去啦。。) 换行再写

问题是 六个不会超过80字符 而加等号导致了精修出错。。

完美的修改方法要重写这段代码 如果是patch就比较麻烦了

我本来想把这个提交给公司 不过一想 逆向是犯法的 所以这个只能放在国内给需要的人提供了 呵呵

我的解决方法是对文件做如下改动(也就是Patch)

004301D4   .  83BD 08FFFFFF>CMP DWORD PTR SS:[EBP-F8],12

改成12让它不换号 这样 我一行写很多也不会被改

好了 到这里我的解决方案结束 改过的文件和原始的文件和一个可以用于实验的res已经打包

我也传115网盘了 应该不会存在不能下的情况

只需要替换电脑中已有的exe就可以使用这个Patch后的版本了 当然强烈建议保留原始版本 原因我不说了 呵呵

结束。。 欢迎板砖。。。

115网盘 http://

XShell6.3.1patch及原版及一个res.zip (4.06 MB)


                                                                        zklhp
                                                                    2012-1-8 时月明星稀

[ 本帖最后由 zklhp 于 2012-1-8 22:49 编辑 ]
搜索更多相关主题的帖子: 解决方案 软件 Email 
2012-01-08 22:45
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
先发这里 然后转到专门的学术网站去。。。
2012-01-08 22:51
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
在读本科 今年毕业。。

工作么 还早
2012-01-13 16:12
快速回复:【自己转自己的】一个单晶解析辅助软件XShell v6.3.1 FVAR行=号bug的解 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.071577 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved