新手破解练习Crackme160之101 - Crackme7

  1. 脱壳
    程序有壳PECompact v1.33, 用PEiD通用脱壳插件成功脱壳~
     

  2. 去NAG
    程序是VB写的, 我们先用VB Decompiler先反编译一下查看源代码~ Project源码看到Startup="Enterance", 启动窗体是Enterance这个, 我们打开Enterance这个窗体的onload事件看到的是隐藏自身并显示Crackme_Main窗体:

	Private Sub Form_Load() '42FA50
	  loc_0042FA93: Me.Hide
	  loc_0042FB11: var_8008 = Crackme_Main.Show 10, var_20
	End Sub

是不是有点奇怪, 既然自身隐藏了怎么真正运行时还是显示的呢? 我们来到Crackme_Main的onload事件, 看到了类型的代码:

	Private Sub Form_Load() '42F310
	  loc_0042F353: Me.Hide
	  loc_0042F3D1: var_8008 = Enterance.Show 10, var_20
	End Sub

又是把自己隐藏起来, 显示另一个Enterance窗体, 所以我们直接把Crackme_Main的onload事件禁用掉, 就不会再显示Enterance窗体了, OD来到0042F310行, 改为retn 0x4即可, 保存完成~
 

  1. Task1
    这个不知道干嘛的, 按钮事件判断输入的是不是数字, 并没有别的什么提示~ 也没别的算法~ 作者要求字母也可输入, 完成验证, 那就是说数字字母都要可以输入并保留~, 那就把判断条件去掉就行了~ 0042EE40行nop掉即可~
     

  2. Task2
    点击Task2按钮, 弹出一个窗体(NAG), 作者提示要我们干掉这个窗体直接去到下一个窗体~, 好吧, 我们看一下点击事件
    Private Sub Command3_Click() '42F200
    loc_0042F243: Me.Hide
    loc_0042F2C1: var_8008 = Form3.Show 10, var_20
    End Sub
    这里我们改成Form4.Show就行了, 但VB Decompiler里不能直接编辑_, 所以我们还得在OD中修改, 对比Task2点击事件与Form3的点击事件:
    Task2:

	......
	0042F26A  |.  68 4C004300     push Crackme7.0043004C		; 这里不一样
	0042F26F  |.  68 74B04200     push Crackme7.0042B074			; 这里不一样
	0042F274  |.  FF15 68104000   call dword ptr ds:[<&MSVBVM60.__vbaNew2>]                ;  msvbvm60.__vbaNew2
	0042F27A  |> \83EC 10         sub esp,0x10
	0042F27D  |.  B9 0A000000     mov ecx,0xA
	0042F282  |.  8BDC            mov ebx,esp
	0042F284  |.  894D DC         mov [local.9],ecx
	0042F287  |.  B8 04000280     mov eax,0x80020004
	0042F28C  |.  83EC 10         sub esp,0x10
	0042F28F  |.  890B            mov dword ptr ds:[ebx],ecx
	0042F291  |.  8B4D D0         mov ecx,[local.12]
	0042F294  |.  8BD0            mov edx,eax
	0042F296  |.  8B35 4C004300   mov esi,dword ptr ds:[0x43004C]		; 这里不一样
	0042F29C  |.  894B 04         mov dword ptr ds:[ebx+0x4],ecx
	0042F29F  |.  8BCC            mov ecx,esp
	0042F2A1  |.  8B3E            mov edi,dword ptr ds:[esi]                               ;  Crackme7.00431A28
	0042F2A3  |.  56              push esi
	0042F2A4  |.  8943 08         mov dword ptr ds:[ebx+0x8],eax
	0042F2A7  |.  8B45 D8         mov eax,[local.10]
	0042F2AA  |.  8943 0C         mov dword ptr ds:[ebx+0xC],eax
	0042F2AD  |.  8B45 DC         mov eax,[local.9]
	0042F2B0  |.  8901            mov dword ptr ds:[ecx],eax
	0042F2B2  |.  8B45 E0         mov eax,[local.8]
	0042F2B5  |.  8941 04         mov dword ptr ds:[ecx+0x4],eax
	0042F2B8  |.  8951 08         mov dword ptr ds:[ecx+0x8],edx
	0042F2BB  |.  8B55 E8         mov edx,[local.6]
	0042F2BE  |.  8951 0C         mov dword ptr ds:[ecx+0xC],edx
	0042F2C1  |.  FF97 B0020000   call dword ptr ds:[edi+0x2B0]                            ;  msvbvm60.7955713C
	......

Form3:

	......
	0042F71A  |.  68 74004300     push Crackme7.00430074		; 这里不一样
	0042F71F  |.  68 E8A44200     push Crackme7.0042A4E8		; 这里不一样
	0042F724  |.  FF15 68104000   call dword ptr ds:[<&MSVBVM60.__vbaNew2>]                ;  msvbvm60.__vbaNew2
	0042F72A  |> \83EC 10         sub esp,0x10
	0042F72D  |.  B9 0A000000     mov ecx,0xA
	0042F732  |.  8BDC            mov ebx,esp
	0042F734  |.  894D DC         mov [local.9],ecx
	0042F737  |.  B8 04000280     mov eax,0x80020004
	0042F73C  |.  83EC 10         sub esp,0x10
	0042F73F  |.  890B            mov dword ptr ds:[ebx],ecx
	0042F741  |.  8B4D D0         mov ecx,[local.12]
	0042F744  |.  8BD0            mov edx,eax
	0042F746  |.  8B35 74004300   mov esi,dword ptr ds:[0x430074]		; 这里不一样
	0042F74C  |.  894B 04         mov dword ptr ds:[ebx+0x4],ecx
	0042F74F  |.  8BCC            mov ecx,esp
	0042F751  |.  8B3E            mov edi,dword ptr ds:[esi]                               ;  Crackme7.00431A28
	0042F753  |.  56              push esi
	0042F754  |.  8943 08         mov dword ptr ds:[ebx+0x8],eax
	0042F757  |.  8B45 D8         mov eax,[local.10]
	0042F75A  |.  8943 0C         mov dword ptr ds:[ebx+0xC],eax
	0042F75D  |.  8B45 DC         mov eax,[local.9]
	0042F760  |.  8901            mov dword ptr ds:[ecx],eax
	0042F762  |.  8B45 E0         mov eax,[local.8]
	0042F765  |.  8941 04         mov dword ptr ds:[ecx+0x4],eax
	0042F768  |.  8951 08         mov dword ptr ds:[ecx+0x8],edx
	0042F76B  |.  8B55 E8         mov edx,[local.6]
	0042F76E  |.  8951 0C         mov dword ptr ds:[ecx+0xC],edx
	0042F771  |.  FF97 B0020000   call dword ptr ds:[edi+0x2B0]                            ;  msvbvm60.7955713C
	......

经过对比, 发现三处不一样, 把对应的值替换掉~, 保存搞定~

 
 
 
这是160个软件part1
这是160个软件part2

1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载

新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~

下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~
OD界面布局

posted @ 2024-07-12 08:42  hankerstudio  阅读(19)  评论(0)    收藏  举报