Office中国论坛/Access中国论坛

标题: 时间限制,谁能破我的时间限制?有本事就来破破看!!! [打印本页]

作者: cg1    时间: 2002-10-14 22:45
标题: 时间限制,谁能破我的时间限制?有本事就来破破看!!!
最新时间限制 2000版的,谁能破我的时间限制?有本事就来破破看!!!
文件下载

只有13k阿,不使用任何外部文件,不修改丁点注册表,所有的注册信息全部存储在数据库里面,就看你有否本事破掉它了!!!

破掉的朋友发mail给我啊!!! cg1sh@hotmail.com
作者: WTM1    时间: 2002-10-14 23:23
兄弟!!口气太大了!!不要目中无人!!
-R
AX=0000  BX=0002  CX=1000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0ACD  ES=0ACD  SS=0ACD  CS=0ACD  IP=0102   NV UP EI NG NZ NA PE NC
0ACD:0102 0000          ADD     [BX+SI],AL                         DS:0002=FF
-U102
0ACD:0102 0000          ADD     [BX+SI],AL
0ACD:0104 53            PUSH    BX
0ACD:0105 7461          JZ      0168
0ACD:0107 6E            DB      6E
0ACD:0108 64            DB      64
0ACD:0109 61            DB      61
0ACD:010A 7264          JB      0170
0ACD:010C 204A65        AND     [BP+SI+65],CL
0ACD:010F 7420          JZ      0131
0ACD:0111 44            INC     SP
0ACD:0112 42            INC     DX
0ACD:0113 0001          ADD     [BX+DI],AL
0ACD:0115 0000          ADD     [BX+SI],AL
0ACD:0117 00B56E03      ADD     [DI+036E],DH
0ACD:011B 62            DB      62
0ACD:011C 60            DB      60
0ACD:011D 09C2          OR      DX,AX
0ACD:011F 55            PUSH    BP
0ACD:0120 E9A967        JMP     68CC

不过而而!!……
作者: gnoy    时间: 2002-10-14 23:28
WTM1,你这是?
作者: HG    时间: 2002-10-14 23:34
沒什麼,只要懂點DEBUG這些原始工具都可以去除一般的加密和外殼,當然用SOFTˍICE更歷害。
只有您的程序依賴於計算機的硬件中斷來工作,哪麼DEBUG就永遠有用。
所須要的是搞懂計算機的工件原理,和匯編語言。當然也要了解些常用的加解密方法。
現在流行的軟件解密都是用DEBUG來搞定的,這裡DEBUG指除錯和調試。
作者: WTM1    时间: 2002-10-14 23:45
HG:
知己!!啊!!!!……
有时间我们聊聊DEBUG 加密系统的开发!!??
OK?

很简单!凡是ACCESS都是把密码压缩在一个文件中的某一地址!
在这个地址转换10进值,就是理论密码!当然可能和密码不一样,但同样可以进入!
在使用去外壳程序 如:“AJK6SDU”就可以看内容,然后存案就可以了!!


这就是各软件开发者一律声明并严禁的反汇编工程!!



作者: cg1    时间: 2002-10-14 23:46
什么乱七八糟的? 我只会VB,兄弟在代码边上添加点解释,否则俺们看不懂。

如果你不用DEBUG等反汇编工具,怎么破?
[此贴子已经被作者于2002-10-14 15:46:16编辑过]


作者: cg1    时间: 2002-10-15 00:12
晕,那微软的软件限时这个题目不是没有任何意义吗?

你能否直接把破掉以后的MDE文件贴到网上来?
作者: cg1    时间: 2002-10-15 00:14
gnoy  老兄,你怎么破的?我这里运行还是会跳出一句话,说要注册
作者: gnoy    时间: 2002-10-15 00:20




[此贴子已经被gnoy于2002-10-14 16:20:16编辑过]


作者: gnoy    时间: 2002-10-15 00:20
sorry,是我搞错了。
作者: WTM1    时间: 2002-10-15 00:24
不!!本人没有时间!
作者: cg1    时间: 2002-10-15 00:31
我只懂vb,不清楚各位高手如何破解的
我在程序中写了一段过程,每次运行一个程序的时候都会运行这段过程,包括打开窗体,执行查询等,我不清楚你们到底如何破解的,破解了什么东西,是破解了我存储在mde 文件末尾的开始使用日期还是破解了 If Abs(DateDiff("d", Time, Date)) > 30 Or LastTime > Date Then 这句程序语句?
我是一个打字员不是搞电脑的,所以不懂汇编,请高手解释一下
作者: gnoy    时间: 2002-10-15 00:35
说老实话这样不能真正限制嘛。人家可以改时间嘛。
作者: cg1    时间: 2002-10-15 01:07
新做的,过期后即使改系统时间也没用

另外,前面说的反汇编的方法,作者说已经破掉了,但是没有真正上传被破解的文件,所以我也不清楚具体的到底怎么样破解的(汇编我不懂)

因为我的软件是财务软件,每次使用都会产生一定的时间标志(凭证时间)所以,除非他真正把我做时间限制的程序破解掉,或者直接找到我存储在数据库中的时间标志,否则是无效的

其实我上传这个文件主要是偏重于让大家找到时间标志存储的位置,因为以前大家都想过注册表、建立一个外部文件来存储、放在表里面、放在代码中等方法,但是我都不是放着这些地方,大家猜猜看,我放在哪里?


作者: txman    时间: 2002-10-15 01:16
有没有奖金?如果我认为奖金可以我也愿意玩玩。
作者: cg1    时间: 2002-10-15 01:34
标题: 新做的,改时间也是无效,不信你试验一下
新做的,改时间也是无效的,不信你试验一下
[此贴子已经被作者于2002-10-14 17:34:29编辑过]


作者: cg1    时间: 2002-10-15 01:35
标题: NEW
文件下载

作者: HG    时间: 2002-10-15 02:01
我也是沒時間現DEBUG,因玩這個太累。
對於用小段程序加密和判斷密碼的,一般用debug調試到程序開始執行處,然後用調轉指令跳過即可,或者直接修改內修變量或旗標,改他為不執行,然後再寫回程式即可。這些都有專用軟體來完成。包括各種方式加密的文件。因為破注冊和解密有一定的區別,大部份人是用DEBUG直接找到哪密碼,或者干脆調過這段加密代碼。因為破解者根本就沒有去解密。
作者: cg1    时间: 2002-10-15 02:14
懂了,就是说

if password = SaveInDatabasePassword then   ' 调用汇编的方法直接跳过了这句程序执行下面一句了
    msgbox "您的密码正确"
end if

那也就是说我调用任何方法加密都是无效的了?
[此贴子已经被作者于2002-10-14 18:13:38编辑过]


作者: access911    时间: 2002-10-15 05:06
不用汇编,直接找到 SysAccVr
写入:
598667346796710630051495262462358321719113025196253544001651606449701763569154400315401461226772052128101306483104556659388804668622093503220454400329677105067204211536043659564441743771527146442323359453268780010120000

怎么样?搞定否?
作者: Y.J.Wang    时间: 2002-10-15 05:36
更玄了.
"SysAccVr"-------------->这是什么呀
"598667346796710630051495262462358321719113025196253544001651606449701763569154400315401461226772052128101306483104556659388804668622093503220454400329677105067204211536043659564441743771527146442323359453268780010120000"------>这有是什么?
作者: cg1    时间: 2002-10-15 05:41
呵呵....(惨笑)

这是我用来纪录加密的启动日期及使用期限、日期的字串,没想到这也给破了,惨阿

5555555555,没脸见江东父老了 :(
作者: cg1    时间: 2002-10-15 17:20
我又更改了结构,将加密标志分位置存储,我想Access911老兄应该就没那么容易用直接读写我的加密字串了,关于用反汇编的方法,我还需请教各位玩破解的朋友,如果我用Access本身的数据库加密,即使你破解成功了,是否还能成功回写呢?
作者: wjw113    时间: 2002-10-15 17:37
SysAccVr 在什么地方的啊?
作者: cg1    时间: 2002-10-15 17:57
标题: 加密
?
[此贴子已经被作者于2002-10-15 9:56:39编辑过]


作者: WTM1    时间: 2002-10-15 18:10
HG:
果然厉害!!不错,使用DEBUG 没有必要破解密码,只要实用

         FCOM    QWORD PTR [BP+06FE]
RCL     BYTE PTR [BP+C3F8],CL
MOV     BX,[9913]
CALL    00C8
CALL    0120
MOV     WORD PTR [96DC],0034
MOV     SP,BA0A
或JMP 跳跃指令,就可以了!

使用指令跟踪对程序每一条进行跟踪,根据文件字节计算出开始地址与终止地址!

ACCESS使用时调用24/21/08/10/51
中断,密码一般占用21/24中断!
时钟占用10/08中断!
这样屏蔽或跳过中断就可以了!或反汇编显示内容跳过密码检索认证指令,就可以了!

我不想看源代码!只是破解这个程序!!


使用
-R CX,****
-N 文件名
-W *****
-Q
就可以实现对程序的写入!!

00 0D 2E 4D 44 45 0D 4E-4E 54 5C 73 79 73 74 65   ...MDE.NNT\syste
6D 33 32 5C 64 6F 73 78-0D 0D 6F 72 20 28 6C 6F   m32\dosx..or (lo
61 64 20 62 65 66 6F 72-65 20 64 6F 73 78 2E 65   ad before dosx.e
78 65 29 0D 69 6F 6E 27-73 20 50 49 46 2E 0D 73   xe).ion's PIF..s
这一点都不难!!或使用专用解壳工具解开後重新生成EXE就可以了!!

我是用开发版生成EXE文件,再用DEBUG 执行跳过及反汇编,通过反汇编转向工具生成C数据![记住:所有计算机程序都必须解释、汇编、生成机器码才可以被机器执行,同时可以进行反向变成!]
後半部我没做!!

这样太复杂了!!
hg :有简单的方法嘛!?








作者: huanghai    时间: 2002-10-15 20:07
看不明白,插不上嘴,HG和WTM能不能给我们上一课呀?


[此贴子已经被huanghai于2002-10-15 12:06:40编辑过]


作者: HG    时间: 2002-10-15 20:13
我一般都是這樣的啦,也KILL掉密碼判別部份(這種針對動態生成新密碼判別的程式),或者直接找到原密碼(這種針對把密碼寫進程式中的程序),我個人推薦的是找到原密碼,然後公布,盡可能少的修改原程式流程(因為這樣不會對原程式有絲毫影響)
對於用日期和限制的程式,其實什麼也不用要,只要到網上找些用來控制時間的小程序即可,
這類程式往往是一個時間機器外殼,然後把用它啟動的程式運行在自已的外殼內,這樣您就永遠不會過期啦。(簡單吧,看破不要說破,說破就沒意思啦!)
作者: WTM1    时间: 2002-10-15 20:28
哈哈哈!!真是知己!

好了各位!到灌水区讨论吧!!那里说什么都可以!!
现在大家有些跑题!!

[em03]
[此贴子已经被WTM1于2002-10-15 12:27:35编辑过]


作者: cg1    时间: 2002-10-15 20:33
FCOM QWORD PTR [BP+06FE]              实数比较前面一个到后面一个,并设置标志位
RCL BYTE PTR [BP+C3F8],CL             带进位循环左移CL次
MOV BX,[9913]                         传送后面一个到前面一个
CALL 00C8                             调用地址 00C8
CALL 0120                             调用地址 0120
MOV WORD PTR [96DC],0034              传送后面一个到前面一个

我就知道这点,其他的就不清楚了
MOV SP,BA0A

作者: WTM1    时间: 2002-10-15 20:38
知道不少了!!你试着生成c或vb文件就可以了!!

作者: WTM1    时间: 2002-10-15 20:39
关于加密请看我的
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算法的原理和部分笔者编写的算法实现代码.




作者: WTM1    时间: 2002-10-15 20:53
标题: 用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
五、小 结
本小软件可启动多个有时间限制的程序,也可以通过命令参数(格式是:本程序名 要启动的程序名称)一次启动一个程序,可用
作者: WTM1    时间: 2002-10-16 17:46


  一般这类保护的软件都有时间上的限制,如试用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年。

只要通过时间限制就可以使用软件了!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3