能力值:
( LV2,RANK:10 )
|
-
-
2 楼
判断两个值是否相等,相等就跳走继续执行,不等就退出,这是最简单最好破的软件了
比如我用VB放两个TEXT,一个按钮,值用默认,按钮代码里写
Private Sub Command1_Click()
If Text1.Text <> Text2.Text Then End
End Sub
这时候如果直接点command1,两个Text的默认值一个是Text1,一个是Text2,结果肯定是不等的,会退出
那我们OD来载入,看到这儿
00401C94 . FF15 68104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStrList
00401C9A . 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24]
00401C9D . 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
00401CA0 . 52 PUSH EDX
00401CA1 . 50 PUSH EAX
00401CA2 . 6A 02 PUSH 2
00401CA4 . FF15 10104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>; MSVBVM60.__vbaFreeObjList
00401CAA . 83C4 18 ADD ESP,18
[COLOR="Red"]00401CAD . 66:85F6 TEST SI,SI
00401CB0 . 74 06 JE SHORT 工程1.00401CB8
00401CB2 . FF15 08104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaEnd>] ; MSVBVM60.__vbaEnd
00401CB8 > C745 FC 00000>MOV DWORD PTR SS:[EBP-4],0[/COLOR]
00401CBF . 68 EB1C4000 PUSH 工程1.00401CEB
00401CC4 . EB 24 JMP SHORT 工程1.00401CEA
00401CC6 . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C]
00401CC9 . 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
00401CCC . 51 PUSH ECX
00401CCD . 52 PUSH EDX
00401CCE . 6A 02 PUSH 2
00401CD0 . FF15 68104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStrList
00401CD6 . 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
明显可以看出,如果00401CAD处不为0,就直接走向00401CB2的退出,否则程序就继续
那我们想让软件不退出,修改的地方就很多了,比如把00401CB0的JE改成JNE(条件变反)或JMP,强制跳过退出代码
再要不然把SI值改为0等等
加壳不错,得加加密壳,压缩壳基本作用不大
防破解可以做网络验证,更改判断的方法,加复杂算法
我也是初学,也就这个水平了,将就看下
|
能力值:
(RANK:300 )
|
-
-
3 楼
这就是常说的“爆破”。只是修改了一个跳转。if语句跳转有两个方向,修改跳转代码就可以改变流程。不过真假值都走向一个正确的流程。楼主多看看破解相关的基础帖子。
二楼解释的很清楚
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
随机在程序中的一些地方都加入验证代码.
有些地方运行时随机验证.可能验证也可能不验证.
让他即使修改了一些验证的地方,也不能完全破解
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
楼主你还是这样做吧
VMProtectBeginUltra(AntiFk);
if md5(mysn1)<>md5(mysn2) then end
if left(mysn2,2)<>"AC" then end
VMProtectEnd();
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
二楼正解。。我是新手。。。帮顶。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
好啊 学到了
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
2楼解释的很清楚,谢谢,但我还是知道该怎么处理。再复杂的算法,最后也得有个对比啊,现在的问题是被破解者跳过对比了。而且不是修改原文件,是运行了一个附加程序。
3楼谢谢版主,我现在刚开始学习
4楼的得用VMP加密吧,我试过VMP总被报毒。 再问个问题,在Themida中,如果我这样写
Call VarPtr("VM_START")
Call myFunc1
Call VarPtr("VM_END")
请问,myFunc1中的代码,有没有被VM处理?
如果myFunc1中还含有myFunc2,myFunc2有没有被处理?
|
能力值:
( LV12,RANK:200 )
|
-
-
9 楼
VM!!!!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
借机会学习了一下
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
你说的两个文件MD5相同,那就是另个内存补丁程序修改你程序的内存
|
|
|