Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]如何在数据库中埋下一个自我毁灭程序?

马山杨梅  发表于:2009-10-06 14:53:52  
复制

一数据库,存于U盘,随身携带。因担心此U盘不慎丢失后数据库遭别人打开。后果虽不如冠希那台电脑这么严重,但存有秘方,密码等重要信息,不想让他人得到。所以抛出此帖,希望得到一个良策。
数据库设有密码(是Access菜单/工具/安全/设置数据库密码里设置的那种)
期待效果:
1.在这个密码框连续输错2次密码后立刻删除整个数据库文件。
2.若行不通则退而求其次,立刻删除所有表。
谢谢!

 

Top
点燃一支烟 发表于:2009-10-06 15:04:00

要真正实现你的效果可能要文件粉碎,而不是删除,即便不是数据库文件,随便一个什么文件,删除之后,在有效时间段内动用有关恢复软件是可以找回或部分找回的,包括数据库的表误删除之后也是可以条件恢复的。所以安全是相对的,看你的东西栽在什么人手里而已。



点燃一支烟 发表于:2009-10-06 15:09:13
你还是把重点放在保管好你的数据库,管理到位胜于技术防范,典型的例子就是深圳彩票的虚增中奖号码案,按理彩票数据库的安全级别应该是足够高了吧,可以一旦管理不到位还是白搭的,呵呵

马山杨梅 发表于:2009-10-06 16:05:13

老师说得有道理。但以本帖实际情况,还不需要达到这种防范级别。只想从技术层面探讨一下,采取主动防御,毕竟被高手捡到还要其中的信息对他有用的概率太小了。当然最好是把文件粉碎了,可能这样做起来更难吧。



点燃一支烟 发表于:2009-10-06 16:17:29

提供一个简单的思路,不过自己没试过,有兴趣的你话可以自己一试,仅是删除库文件:设你自己有用的数据库为A,另建一个数据库B(放在同目录下),在A输入两次密码错误后,执行先关闭并退出A数据库,同时打开B数据库的代码,B数据库打开时执行删除A数据库的代码,呵呵,这只是设想,本身A在运行的时候自己删除自己,我想恐怕做不到的,肯定是文件被占用。你去试试,看能做到不。呵呵



点燃一支烟 发表于:2009-10-06 16:24:13
你也可以把删除表的代码也加进去,即既删除表,也删除库

andymark 发表于:2009-10-06 16:38:14

数据库设有密码(是Access菜单/工具/安全/设置数据库密码里设置的那种

 

 

首先这种方式,不需要输入2次密码就给破解了

如果人家在输入密码前,备份你的数据库呢,前面所说的方法都是徒劳

 

 

建议你的程序加入注册功能,限定指定的电脑才可以使用

在此基础上再增加其他保护措施: 加密数据,破坏硬盘分区,删除自已,格式化.....

 

 

 



白发学者 发表于:2009-10-06 17:22:18

看看这个例子,只是没有源码....

期限是:2008-07-07 

 

点击下载此附件

 

找原作者把,我也是论坛上看到的。



点燃一支烟 发表于:2009-10-06 17:33:09
呵呵。有必要确定一下讨论的前提,否则说来说去也不可能有结果的:1、我之前说了,疏于管理之下是不可能做到绝对安全的,哪怕你技术再高。2、楼主所谓的安全的探讨是针对特定环境和特定人的(我的理解),呵呵,如果有心想搞名堂的话,总有高人总有办法破解的(尤其是预想到你有可能采取的安全措施之后),哪怕你的措施做得再足,我看能防防“君子”莫防“小人”,能防防一般情况莫防特殊情况就要得了,哈哈,俗话说:不怕“什么”偷就怕“什么”惦记,一旦惦记上了,你就等着迟早破解的一天吧;3、有些安全措施是把“双刃剑”,你给摩托车加两把或以上的“大锁”自然安全性相对高些,可自己到时解锁也比较麻烦了,呵呵,比方说“破坏硬盘分区”,别到时把自己的硬盘分区弄没了。3、所有安防措施是相对的,不完美是绝对的,要我看:管好你的U盘,别弄丢了是最好的安防措施,你会说“万一”,呵呵,我会说,“万一”你输密码的时候,被人正好偷窥了怎么办呢?,既然是你认为重要的东西,看护好才是第一要义,别弄丢了啊,费劲去想周全了技术防护措施,呵呵,有防护的措施就有解防护的措施的。

白发学者 发表于:2009-10-06 19:19:43

哈哈8楼是乎跑题了...

楼主的问题焦点应该不是在“万一”...,而应该是“...自我毁灭程序”。

这才是与本论坛相一致的。



马山杨梅 发表于:2009-10-06 20:09:19

感谢各位的关注!

7楼的应该是一个类似定时炸弹的东西。6楼指定电脑的方法不适合本例,因为这个库前面已提到了,存在移动优盘中,目的有二,1.备份工作电脑的数据库,2在外地时可随时打开查阅信息。比如一个不太常用的某网站登录密码,我也清楚任何安全措施只是相对的。

但现在需要考虑的不是你有备而来,你根本不会料到这个文件中会有一个自我毁灭程序。

我请各位想象一下,当你意外捡到一个U盘你会怎么做。

我的设想是这样的:

当有人捡到我的U盘,首先会插到自己的电脑上看一看里面有些什么。小心点的会先杀杀毒。然后打开每个文件夹,每个文件浏览一遍。一般不会轻易把来路不明的文件先拷到自己的电脑上。

我就是要在这个第一时刻引爆自我毁灭程序。

现在的难点是如何取得在“密码框输错密码后的事件”(当然可能不存在该事件),并在其中嵌入代码。

我是这么设想的,当他尝试输入第一遍密码后(但肯定是错的)会弹出一个提示框:“密码正确,请再输入鉴定码,鉴定码为今天的日期”,我想他一定会狂喜,并轻松地在密码框内输入日期,这时会再弹出提示:“文件打开中,请稍等...”。他并不知道其实内部执行的是自我毁灭程序,即(就算是退一步的删除全部表后,又在执行压缩数据库)。

等高手打开库的时候,发现只是一个空壳。



andymark 发表于:2009-10-06 21:20:21

楼主在数据库设置登陆密码,在该数据库直接启动是没法实现楼主要求的

 

1.建一个启动程序(可以是VB之类的,编写一个启动数据库的EXE文件)

 

用EXE来控制数据库的安全,这点很容易实现楼主的要求

 

从习惯来说,一般人都会直接打开EXE,而不是MDB文件

 

2.为防止用户直接从MDB启动,须在MDB文件中禁用SHIFT键,并定义一个启动宏(AUTOEXEC) 来删除数据库的所有表,查询

  用户打开MDB会直接把所有数据清空

 

 

上面2点很容易实现,对于一般人来说,基本上足够啦

 

 



andymark 发表于:2009-10-06 21:25:58

EXE启动的登陆密码,最好是经过加密后再还原

 

登陆密码,并不是数据库的密码,需经过解密还原

 

 

 



点燃一支烟 发表于:2009-10-07 08:37:50
"当他尝试输入第一遍密码后(但肯定是错的)会弹出一个提示框:“密码正确,请再输入鉴定码,鉴定码为今天的日期”,我想他一定会狂喜,并轻松地在密码框内输入日期...." 晕,对于外人来说,第一次尝试猜解密码就让他以为猜对(那个msgbox的提示),会“狂喜”?这样的几率比彗星撞地球还小,呵呵,要是我肯定起疑心?糊弄人也要最好糊弄得象一点啊,你还不如不提示“密码正确”,让他继续猜解,呵呵

马山杨梅 发表于:2009-10-07 09:18:33

那我现在改一下思路,只要他尝试输入密码,就范致命错误,具体如下:

当第一遍密码错误后,立刻进入毁灭程序,除非是主人知道如何终止(程序设计时留给主人取消执行下面毁灭语句的办法,如在密码窗口输入内定的正确密码),否则不管你有没有尝试输入第2次都将引爆毁灭程序。

现在的关键还是在于怎样在这种Access自带的密码框输错密码后,取得这一时机(或说事件),然后才能嵌入代码。

一般此刻会弹出一个“密码无效”的消息框,(如下图),就是要取得这个事件作为切入点。



点燃一支烟 发表于:2009-10-07 18:15:43

呵呵,研究了一下午,终于研究出了这个“自杀程式”,吃饭去罗,明天开放源码,呵呵



点燃一支烟 发表于:2009-10-07 18:25:34

呵呵,在vb里可以,移置到access里面出问题了,晕



点燃一支烟 发表于:2009-10-07 20:30:16
点击下载此附件  下载后解压,启动后再关闭数据库,试试看自杀不?还不完善,欢迎进一步完善。呵呵

点燃一支烟 发表于:2009-10-07 20:33:16
14楼方法不妥

点燃一支烟 发表于:2009-10-07 20:51:19

你不要用那个access自带的加密数据库的密码,那东西很容易破解,你自己建一个弹出的登陆窗体就是啊,输不对密码只有关,一关就自杀就是,呵呵



马山杨梅 发表于:2009-10-07 21:34:42

辛苦邓老师了,甚是感激。

但您做的例子,似乎太危险了,不小心自己就炸了。需要我上面说的对主人,正常使用没问题才是。

用这样的access自带的密码,简单方便,可靠。习惯了。

建登陆窗体感觉晚了点,我自己认为在这个密码框时可能还没有打开数据库,弹出登陆窗体就进入了数据库。我打个比方:

我认为在那个access自带的加密数据库的密码框输入时,就像盗墓者动用洛阳铲的时候,等弹出自己设计的密码框时等于打开古墓的时刻。

不知老师是否认为我的观点可笑。

 

 



总记录:33篇  页次:1/2 9 1 2 8 :