设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

1234
返回列表 发新帖
楼主: cg1
打印 上一主题 下一主题

时间限制,谁能破我的时间限制?有本事就来破破看!!!

[复制链接]
31#
发表于 2002-10-15 20:38:00 | 只看该作者
知道不少了!!你试着生成c或vb文件就可以了!!
32#
发表于 2002-10-15 20:39:00 | 只看该作者
关于加密请看我的
IBM的MARS加密算法实现(1)
出处:PConline
责任编辑:zwg

[02-8-12 18:34]  作者:吴真  
   
内容搜索 
   
  高级搜索      


  
   
作者:吴真
转载请与作者联系

一、背景知识

1977年颁布的数据加密标准DES算法。其56位长的密码空间在芯片技术和计算技术高速发展的今天,越来越不适应安全需求。1997年9月美国国家标准技术研究所(NIST)提出了征求新的加密标准---AES (Advanced Encryption Standard)的建议,作为一种取代DES的二十世纪加密标准技术。其目标是:(1)执行速度快;(2)易于设计;(3)从大型计算机到智能IC卡(CPU卡)都可实现。1998年8月第一次AES会议(AES1)上,宣布了来自12个国家的15种候选AES算法。于1999年8月第二次AES会议(ARD2)上,从中筛选出5个候选算法:

Algorithm Author(s)
(1) MARS IBM (US)
(2) RC6 RSA Laboratories(US)
(3) Rijndael John Danemen,Vincent Rijmen(Belgium)
(4) Serpent Ross Anderson(UK),Eli Bihan(Israel),Lars Knudsen(Nornay)
(5) Twofish Bruce Schneier,John Kelsey,Doug Whiting,David Wagner,Chris Hall,Nids Ferguson

经过大量的分析及评估后,NIST队伍最终选择了Rijndael。这是在考虑安全,性能,效率,易用和灵活等诸多方面做的一种权衡选择,正如NIST在其报告中称:"所有这五种算法对AES都很安全".本文将介绍一下由IBM公司提出的MARS算法的原理和部分笔者编写的算法实现代码.



33#
发表于 2002-10-15 20:53:00 | 只看该作者

用VB“破解”有时间限制的程序

你是否经常遇到有时间限制的程序?我等懒人尤其对此特别反感,可惜囊中羞涩,只好反复修改其系统日期而使自己多用几次此软件——实在是辛苦!于是使用“Anyday32”,可惜也太麻烦了;再后使用“时光倒流”,也不好用,而且——居然还有Bugs!......看样子只好自己动手做“VB软件DIY”了。
一、问题所在
有时间限制的程序大都是依靠在启动过程中检测系统日期,再与其记录的第一次使用日期(放于注册表或特殊文件中)进行对比检测是否试用期已到,若试用期已到,可能会在注册表中作一定的标记,使下次程序不可用。
二、解决问题
我们一般可以通过修改系统时间来使用此类程序,当然在其作过过期标志后可能此“大法”就无效了;也有一些程序的检测细化到了小时,那我们只能将时间也一块改了。
三、DIY中的思路及注意事项
我们可以在自己的程序中先修改系统日期,再启动相应的有时间限制的程序,过一段时间后再将系统日期改回来。
注意:在等待外部程序检测系统日期的等待过程中,系统日期已经改变,那么我们改回的系统日期将是错误的!因此我们要进行一定的检测,以防止此类错误的发生。
四、开始软件DIY
这里我们为方便控制,使用Access数据库进行软件编制。
数据库中表的设计:
字段名
类型
长度
备注

程序名称
Text
20
程序的标识,以便于管理

启动程序
Text
255
实际启动的程序

启动日期
Date/Time
8
应改回的系统日期


窗体及控件设计:
名称
类型
设置

Form1
窗体
BorderStyle=1

Command1
command
Caption="执行(&R)"

Command2
command
Caption="退出(&Q)"

Check1
CheckBox
Caption="启动程序后自动关闭本软件"

Timer1
Timer
Enabled=False;Interval=5000

Data1
Data
DatabaseName=数据库路径及名称

RecordSource=数据表名称

CommonDialog1
CommonDialog
Filter="请选择您想要启动的程序 (*.*)"

DBGrid1
DBGrid
AllowaddNew=True;AllowDelete=True;DataSource=Data1


CommonDialog和DBGrid控件需要另外加载,其中还需在DBGrid的属性页中进行一定的数据库挂接和设置,要在其属性页中“布局”中的第二列的“按钮”选中。
以下是本小软件的源代码:
Option Explicit
'启动外部应用程序的API函数定义
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Dim OldDate As Date '保存系统日期

Private Sub Command1_Click()
If Not Data1.Recordset.EOF Then '若数据库正在添加记录则不动作
Date = Data1.Recordset(2) '改系统时间
Call ShellExecute(0, vbNullString, Data1.Recordset(1), vbNullString, vbNullString, vbOK) '启动外部程序
Me.Enabled = False '屏蔽其他操作
Timer1.Enabled = True '启动延时记时器
End If
End Sub

Private Sub Command2_Click()
End '关闭本系统
End Sub

Private Sub DBGrid1_BeforeUpdate(Cancel As Integer)
If MsgBox("记录改变吗?", vbYesNo + vbQuestion) <> vbYes Then Cancel = True '是否更新数据库控制
End Sub

Private Sub DBGrid1_ButtonClick(ByVal ColIndex As Integer)
On Error GoTo errdeal '打开错误监测
CommonDialog1.CancelError = True '系统对话框错误控制
CommonDialog1.ShowOpen '打开系统对话框
If CommonDialog1.filename <> "" Then DBGrid1.Text = CommonDialog1.filename '写入要启动的程序信息
errdeal:
End Sub

Private Sub Form_Load()
OldDate = Date '保存系统时间
Call Parameter '获取系统启动时的参数
End Sub

Private Sub Timer1_Timer()’五秒钟后恢复
If Format(Time, "HH:MM:SS") < "00:00:05" Then OldDate = OldDate + 1 '防止在接近零时时的日期恢复错误
Date = OldDate '恢复系统时间
Me.Enabled = True '恢复正常操作
Timer1.Enabled = False '屏蔽延时记时器
If Check1.Value = 1 Then End '是否关闭本系统
End Sub

Private Sub Parameter() '系统参数处理
If Command <> "" Then
'查找相应的启动程序
Data1.RecordSource = "Select * From [StartProgram] Where [程序名称]='" & Trim(Command) & "'"
Data1.Refresh
If Not (Data1.Recordset.EOF And Data1.Recordset.BOF) Then
Me.Hide '隐藏本系统
Check1.Value = 1 '设置关闭标志
Command1_Click '激活本系统的执行事件
Else
'未找到处理
MsgBox "没有此启动程序!", 16, Me.Caption '错误提示
End '关闭
End If
End If
End Sub
五、小 结
本小软件可启动多个有时间限制的程序,也可以通过命令参数(格式是:本程序名 要启动的程序名称)一次启动一个程序,可用
34#
发表于 2002-10-16 17:46:00 | 只看该作者


  一般这类保护的软件都有时间上的限制,如试用30天等,当过了共享软件的试用期后,就不予运行,只有向软件作者付费注册之后才能得到一个无时间限制的注册版本。

  这种类型程序很多,让你有10天、20天、30天等,它们在安装时,在你的系统某处做上时间标记,每次运行时用当前系统时间和安装时的时间比较,判断你还否能使用。
  如最典型的30天限制的一种情况:
  mov ecx,1E ; 把1E (30天 十进制) 放入 ecx
  mov eax,[esp+10] ; 把用过天数放到eax
  cmp eax,ecx ; 在此比较
  jl ...
  如碰到这种情况,只需把"mov eax,[esp+10]"改成"mov eax,1" 。

  要记住当前年份、月份的十六进制的一些表示方法,如:2000年的十六进制是07D0,然后用W32DASM反汇编你的程序,用查找字符串的方法找D007(在机器码中位置颠倒了一下)或其它类似时间的数字,有可能会找到有价值的线索。你别小看这种方法,对那些没怎么防范的程序,此招很有效。
  如:一程序限定在2000年使用,可能有如下一代码:
  :00037805 817C2404D0070000 cmp dword ptr [esp+04], 000007D0 比较是否在2000年。

只要通过时间限制就可以使用软件了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-22 20:17 , Processed in 0.106681 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表