急救:一个伊朗黑客写给我的信,搞不定了,请大家来帮忙为国争光!!!
我的另外一个帖子问的同一问题:http://community.csdn.net/Expert/topic/5362/5362855.xml?temp=.1787226
我的目的是要阻止他删除那个窗口,这是我们公司的软件,昨天受到他的邮件说它可以删除注册窗口。
黑客信的内容:
Hello
i didn 't change anything in main.exe but a call.
a call to "reg " window. it exists there. But no one call it :) .
anyway, removing the window caption and destroying any feature of the window can not solve the problem..
we can get handle in many other ways. but like i said, in this case we don 't need to get any handle. i just remove this:
frmReg.show
from RegTmr. just this.
anything else?
regards,
a Way To Free World - IRAN
[解决办法]
是不是拦截了你的程序的MESSAGEBOX的调用~~
[解决办法]
一般来说,都是先判断注册过没有再弹出注册窗口,但是如果让判断始终为true就不会调用注册窗口 no one call it
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
最新版本:20070212
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
[解决办法]
直接跳过 CrrRegTmr > = 60 判断
[解决办法]
http://www.pediy.com/
加密与解密
[解决办法]
原来是这样啊,即然他是一个计算机博士,那么你所想的所有办法可能都是徒劳了。
1. 他可以屏蔽了你的定时器,也就是RegTmr_Timer事件根本就不发生
2. 他可以处理CrrRegTmr变量,类似游戏修改器一样,在内存中修改这个值,使它永远小于60
...
很多很多方法 ... ...
[解决办法]
我给你出个简单的主意判断的时候不要用整形变量也不要再定时器中判断
除了下面这段代码是不是还有其他标志,其实如果是反汇编你的加密无论多么好
都会被去掉,很多反汇编程序都是通过寻找修改跳转语句frmReg.Show vbModal, Me是一个函数
在汇编中无论怎么样都能找到所以你可以给破解者故意增加一些陷阱比如在
frmReg.Show vbModal, Me之后增加标志,如果此句没有在指定条件下运行就激发其他的判断语句。你是不是在和这位博士玩捉迷藏游戏阿,偶也想编写几个程序让他搞搞,呵呵。
Private Sub RegTmr_Timer()
If CrrRegTmr > = 60 Then
CrrRegTmr = 1
frmReg.Show vbModal, Me
Else: CrrRegTmr = CrrRegTmr + 1
End If
End Sub
[解决办法]
他是把你的frmReg.Show vbModal, Me这句话给屏蔽掉不执行了。
你光靠
Private Sub RegTmr_Timer()
If CrrRegTmr > = 60 Then
CrrRegTmr = 1
frmReg.Show vbModal, Me
Else: CrrRegTmr = CrrRegTmr + 1
End If
End Sub
这样一个函数来显示注册信息是不够的,必须在完成核心功能的代码中添加一些判断,比如:
在frmReg的关闭代码中设置一个变量的值为当前时间,然后在完成核心功能的代码中添加上这个变量的值与当前时间的差距是否小于一定的值,是则继续执行,否则程序退出(退出前切勿显示任何提示信息,这些提示信息只会给破解者增加破解线索)。
[解决办法]
你光靠RegTmr_Timer()这一段检查是否注册,很容易被破解!(对于人家)
你在程序多处加入检查注册的代码,最好加几十个,而且判断方式也不一样,让他破去吧,累死他
[解决办法]
他的意思和我说的差不多,就是在检查注册窗口是否打开。
我英语也不好我的翻译:
建立多种窗口(大约20个类似的窗口)。每过一段时间调用其中的一个。
破解的人不能找到所有的。
并且在注册窗口中改变某些变量值,这些变量在其他地方检查。
我不知道怎么跳过他但是请让我知道它存在。
看这个例子:
Dim varIsReg as boolean, varIsCracked as Boolean
'在注册窗口中当你显示窗口给用户并且他点某个按钮的时候varIsCracked
必须设置为True(注意你必须设置variable改变成1不要改变成0因为
当我们破坏掉你的调用的时候variable一直是0)
'然后用一个定时器检查
if varIsReg = False and varIsCracked = False then end 'VB6中加入代码
[解决办法]
实在不行就在启动软件的时候,同时后台启动一个定时检查是否注册的进程,然后将这个进程注入到系统进程中.
这样比较难搞把.
不过话又说回来,人家vista 在发行24小时后立刻就出现盗版的了,所以,你也不要指望软件加密了.嘿嘿.
实在不行就硬件加密锁
