hasis
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2006-04-03
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:2713回复:11

请教:如何在EXE文件中存储密码信息

楼主#
更多 发布于:2005-01-27 22:36
向各位高人请教:

    我现在要做一个EXE可执行程序,与其它任何动态链接库均无关系,这个程序要求输入密码才能使用。

实现目的:
    我要把这个程序分发给用户,而用户要求可以设置自己密码。

    我将如何设计该程序呢?

    一愁莫展,请各位指教。谢谢!

最新喜欢:

popyangpopyan...
大学课程加上语文吧,否则在驱网里都不会提问题:)
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-28 10:05
EXE和DLL文件都属于只读的,密码放在里面是没有问题的,可是要是想改可能就不行了。
给你个建议,将密码加密后放exe文件之外的地方,最好在注册表里的一个键,使用时先解密再使用,这是比较通用的办法了,毕竟将密码写在一个文件里太不安全。
在交流中学习。。。
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-01-28 10:19
给你一个略为麻烦的办法:
另写一个PassChanger.EXE-用VC或其他工具-将之作为二进制资源放在你的Main.exe里面,当然,你的密码也作为二进制资源存放在Main.exe里面。
这样,至少客户看到的是只有一个EXE。
当客户要修改密码时,Main.exe将PassChanger.exe释放出来,放在本地目录下,并运行之。
PassChanger发出消息,让Main.exe退出,以便可以对之进行修改。
PassChanger此时可以检验旧密码,并让用户输入新密码。旧密码的获取和新密码的写入都要对Main.exe进行操作,而此时Main.exe已经躺在硬盘里任人宰割。。。
之后,PassChanger再次让Main.exe运行,同时,发消息给Main.exe,通知他密码已经更改(是为了让Main.exe知道,应该删除PassChanger.exe!!!)。
这样之后,就只剩下Main.exe还在这里了!当然密码已经被该过了!
A strong man can save himself. A great man can save another.
hasis
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2006-04-03
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-01-28 11:18
非常感谢fslife和zmwk!!
fslife的方法不成,这种方法不安全,也不合乎用户要求.
而zmwk的方法又比较复杂.

不过我从zmwk提示的方法中获取了比较简单的方法,在程序中设置一个字符串类型的资源,用其存储密码.每次使用时均读取该资源,进行密码验证;如果要更改密码,则改写其资源.
当然,为了保证密码不被别人查到,可以使用加密算法或一些小算法,最终确保安全.

经验证,该方法切实可行.




大学课程加上语文吧,否则在驱网里都不会提问题:)
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-01-28 12:36
一个exe不行,得借助其他文件或注册表。
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-01-28 18:42
不会吧!
就算你使用UpdateResource API,它也不支持写入正在运行的EXE呀!

你是怎么实现的呢?我很好奇?!
A strong man can save himself. A great man can save another.
hasis
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2006-04-03
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-01-30 19:40
不好意思,zmwk,是我搞错了.

你说的是对的!
大学课程加上语文吧,否则在驱网里都不会提问题:)
liuhaochuan
驱动牛犊
驱动牛犊
  • 注册日期2003-12-22
  • 最后登录2013-12-04
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-06 22:31
可以把加密结果直接写在EXE文件里,PE文件前面大概有几十个BYTE是为了输出This program cannot be run in DOS mode,只要你要写入的信息不太长应该可以覆盖。

不然还可以在PE尾部追加数据,缺点是如果软件自效验的话这种方法就不可行了。
liuhaochuan
驱动牛犊
驱动牛犊
  • 注册日期2003-12-22
  • 最后登录2013-12-04
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-03-06 22:35
哦 忽略了你要求的是运行时刻写入。我的方法不行。
seahawk
驱动牛犊
驱动牛犊
  • 注册日期2005-02-13
  • 最后登录2006-03-08
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-06 23:54
给你一个略为麻烦的办法:
另写一个PassChanger.EXE-用VC或其他工具-将之作为二进制资源放在你的Main.exe里面,当然,你的密码也作为二进制资源存放在Main.exe里面。
这样,至少客户看到的是只有一个EXE。
当客户要修改密码时,Main.exe将PassChanger.exe释放出来,放在本地目录下,并运行之。
PassChanger发出消息,让Main.exe退出,以便可以对之进行修改。
PassChanger此时可以检验旧密码,并让用户输入新密码。旧密码的获取和新密码的写入都要对Main.exe进行操作,而此时Main.exe已经躺在硬盘里任人宰割。。。
之后,PassChanger再次让Main.exe运行,同时,发消息给Main.exe,通知他密码已经更改(是为了让Main.exe知道,应该删除PassChanger.exe!!!)。
这样之后,就只剩下Main.exe还在这里了!当然密码已经被该过了!


真是好办法!干净利索,痛快!:)

不过如果贪图简便,可以用dingboy的加壳程序,功能非常强大,不仅可以设密码,还可以反跟踪,还可以有注册码,简直是要啥有啥:)
傍海渔村酣睡足 斜阳一脉洒千山 鲲鹏不待风潮起 万古江山多寂寥
tsfyx@126.com
驱动牛犊
驱动牛犊
  • 注册日期2004-08-17
  • 最后登录2008-05-27
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-16 08:45
哈哈,这个问题我来回答你,不需要用二个文件交替运行的,因为在系统默认状态下,你的文件在执行的时候,的确使被锁定的,不能修改数据的,但是直接磁盘读写操作是没有锁定的,你可以打开磁盘的句柄,自己分析文件系统,找到你的执行文件,直接磁盘扇区读写的方法修改你的执行文件中的数据,修改玩后,在执行修改后的程序文件,并且把老的执行文件关闭,
    对于没有自己解析过文件系统的人来说,这种方法有难度,相信会者不难,我是做文件系统的;
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-03-16 09:18
我告诉你,在你的资源文件的图像中使用水印技术,安全性相当高
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部