改一个字节,破掉试用次数限制
在这个帖子中,鱼与熊掌提出了一个思路,可以用读写文件的方式设置试用次数。经过实验,发现这种方式是比较弱的。本帖的目的不是为了破解,是为了启发大家的思路。这是程序源码:
;作者:鱼与熊掌QQ775452144
(defun c:tt()
(IF (SETQ TMPTXT (open "C:\\Program Files\\WINDOWNS.TXT" "R"))
(progn
(setq tmpxx(READ-LINE tmptxt))
(CLOSE TMPTXT)
(setq tmpxx(1+(fix(atof tmpxx))))
(SETQ TMPTXT (open "C:\\Program Files\\WINDOWNS.TXT" "w"))
(write-line (itoa tmpxx) tmptxt)
(CLOSE TMPTXT)
)
(progn
(SETQ TMPTXT (open "C:\\Program Files\\WINDOWNS.TXT" "w"))
(write-line "1" tmptxt)
(CLOSE TMPTXT)
)
)
(if (
**** Hidden Message ***** 哈哈,忘了这个无敌口诀了吗?
爆破无敌口诀
一条(跳)就死,九筒(90)就胡
(对应上面的2--修改为nop)
一条(跳)就胡,一饼(EB)伺候
(对应上面的1--修改为jmp)
(74) 变(75)
(84) 变 (85)
最安全的注册程序就是没有单独的注册程序,就是把注册判断分散到程序的多个角落,把注册结果作为一个变量,随机拿出来加入计算,这样破解不完全的程序将是不可靠的,会随机出问题,失去使用价值。注册判断分散到多个位置,给破解者造成很大困扰,随机检测,设置很多暗桩,说不定什么时候就跳出一个来。 (DEFUN C:TT()
(vl-load-com)
(setq cdat (atoi (rtos (getvar "cdate"))))
(if ( (ascii "3") (NTH 14 (vl-string->list(rtos (* 10000 (getvar "cdate"))))))
(alert "\n 执行程序A")
(progn
(alert "\n 程序过期\n 请联系作者")
(exit)
)
)
)
(progn
(alert "\n 程序已过期\n 请联系作者")
(exit)
)
)
(setq a "程序执行")
)
楼主你这个是编译完了再比较二进制文件, 找到记录位置的地方,才“破解”的。先有源文件,再破解,有何实际意义?而且只要人家稍微改动下源程序,大于3改成大于9开平方,要改的就不止一个字节了。
确实如此,其实这不能算是破解,只是思路,说明这样是可行的。
要不,你修改后编译一个fas文件发上来,让我试验一下这种方法是否可行?
方法是可行的,在没源代码的情况下要找出这个比较条件基本是不可能的。如果加入两个以上跳转语句,本方法基本无解。
发一个小程序上来试试?
贱人工具箱 你试一试 命令 TT:
未过期显示对话框 执行程序A
过期显示程序已过期请联系作者
单纯的一个判断
ZC.fas
页:
[1]
2