winhex 的三个用途(图文)
我爱用WinHex。WinHex是什么?
我们来拆字:Win是Windows,Hex是十六进制。
现在清楚了吧,WinHex是一款Windows系统下的十六进制编辑软件。
十六进制编辑软件有什么用?
使用一
将文本复制为C语言代码。
下面这些是C语言的代码
unsigned char data = {
0x48, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6E, 0x66, 0x6F,
0x72, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x00
};
原文是什么?
Here is the information.
当然,原文也可以是中文。
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_fa69fbdacaa2d23a96batoQZKL2gtBSi.jpg http://bbs.duba.net/images/attachicons/image.gif 1.jpg (60.02 KB)
2008-3-11 15:08
再配合系统自带的计算器,你就可以知道每个字符的二进制值了:
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_b01a02e59d7eef670ccfOsezqBStzVsY.jpg http://bbs.duba.net/images/attachicons/image.gif 2.jpg (56.12 KB)
2008-3-11 15:08
在复制菜单里,还有复制为PASCAL代码的操作。
这个功能似乎没什么用,因为这样一来,代码就变得缺乏可读性。
但有时候,就是需要来点玄乎,不是么?
第一个应用就这样讲完。玄乎。
使用二
破解软件。
如果你会汇编,那么读懂反汇编的代码就应该没有什么问题的吧?
有些软件会判断预先输入的数值是否符合它的要求来进行用户身份校验。
用C代码形如:
int check=0;
int register=0;
…
if (check==”registered”)
{
register=1;
}
if(register==1)
{
//程序的所有操作无限制
}
else
{
//程序的部分操作有限制
}
这样的话,你只要将register的值在判断是否为1前,直接改成1,就等于注册成功了。或者在此之前修改check的值。
这只是针对简单的程序的破解。(以前瞎猫碰着死耗子,解决了一个通过调用日期来进行验证是否有效的软件:Omni Httpd Professional。那个软件是免费的,不过每过30天就会过期,强制你去主页下载新的版本。后来它开始不支持WIN98了,所以我就自己试了一下,解决了问题。)
题外话了。
那么,反汇编破解跟这个WinHex有什么关系呢?
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_a43f5aa5ca8c01720a9dU5nAwt9mt5iW.jpg http://bbs.duba.net/images/attachicons/image.gif 3.jpg (25.88 KB)
2008-3-11 15:08
在上面的图片里,我们可以看到4D,5A,90,0003,0000,000400,在下面的图片里也有。
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_e6c41db34f722d49be64S5TsMV9EpJI5.jpg http://bbs.duba.net/images/attachicons/image.gif 4.jpg (33.66 KB)
2008-3-11 15:08
如果你知道怎么修改汇编指令,那就直接在WinHex里改吧!(限于能力,而不是篇幅,我就不讲汇编了。)
但是改了有效么?在记事本里不可以改么?
在记事本里不可以!
记事本保存文件的时候,是以文本文件方式保存的,而程序则需要用二进制方式保存,WinHex就是这样。
我们来试试!
我有一个小程序(为了测试,再复制一个),
用记事本打开,添加文本,然后保存,
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_d8cfd8903c66344ae41d8ATleKpGGbur.jpg http://bbs.duba.net/images/attachicons/image.gif 6.jpg (9.88 KB)
2008-3-11 15:08
再运行,就这样了:
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_5a2597701854760b04a8tfreGnOmNkxo.jpg http://bbs.duba.net/images/attachicons/image.gif 7.jpg (9.25 KB)
2008-3-11 15:08
下面我们试试WinHex:
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_d2c8acfb493d9051ac58d1H3ivIt9UIN.jpg http://bbs.duba.net/images/attachicons/image.gif 8.jpg (30.02 KB)
2008-3-11 15:08
保存后,再运行:
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_eace443847eaf1c7bf3fwrtKCkHMxaxa.jpg http://bbs.duba.net/images/attachicons/image.gif 5.jpg (15.05 KB)
2008-3-11 15:08
没问题!
用记事本打开,还是可以看到程序末尾添加的信息:
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_ed97792851be227a9697mi55sJgyi3xk.jpg http://bbs.duba.net/images/attachicons/image.gif 9.jpg (9.95 KB)
2008-3-11 15:08
接下来,我们可以看一个实例:http://hi.baidu.com/singlestudio/blog/item/ac22bafc99a86b80b901a0a3.html
另外,WinHex可以:
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_8221f39df59164ae282dbs6HGVA0mJlX.jpg http://bbs.duba.net/images/attachicons/image.gif 10.jpg (19.99 KB)
2008-3-11 15:08
这是可以直接编辑运行中的程序的数据的,也要用到反汇编的知识。
用这个方法,我找到了自己的软件的FTP地址和登陆密码(至于怎么找,就靠运气了):
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_d85d36a52942cea9de5bHJTc57Jrf874.jpg http://bbs.duba.net/images/attachicons/image.gif 11.jpg (6.99 KB)
2008-3-11 15:08
使用三
文件恢复(谨慎使用!)
文件恢复软件有很多,网上搜一下能搜一大堆。
WinHex有一个磁盘编辑功能:
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_f93c310bbfc5fa9519b6zqIRKhNHcu1s.jpg http://bbs.duba.net/images/attachicons/image.gif 12.jpg (17.79 KB)
2008-3-11 15:08
在WIN98的时候,你可以用这个软件直接执行反删除操作,很简单,利用delete的原理,直接修改磁盘数据就可以达到undelete的效果了,不过XP下,对硬件的直接访问是被禁止的,所以不能直接反删除了。
但可以进行恢复操作。
不过,我现在用的10.65 SR-7不支持NTFS文件系统的恢复操作,另外,恢复的效果也不是很好,常常看得见目录(其它专业恢复软件看不到的),恢复不了文件,空欢喜。
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_3b5821e1f2d728eea4dd2LhZ3EQRyQdJ.gif http://bbs.duba.net/images/attachicons/image.gif recovered.gif (351.25 KB)
2008-3-11 15:08
Recover4All的效果:
http://bbs.duba.net/images/default/attachimg.gif http://bbs.duba.net/attachments/month_0803/20080311_ef89c1dd585b48e778bbbNr0TC9v0cBH.gif 不错,长见识了,俺不懂汇编(38: 呵呵 (38: (38: 好文章!以后多多写出来点。 版主研究的很多呀,讲的很是深刻,支持一下 谢拉!不过我没有那低版本的 不错的介绍WINHEX的资料,很不错 不错,winhex的用途还真不少,可惜我只懂点皮毛.希望版主多发点这样的文章,好让我们这菜鸟知道什么叫博大精深和天高地厚 好资料,不错,谢楼主. 好资料,不错,谢楼主.