一直也没写过什么,就写这个东东给刚刚入门的朋友吧。
目标程序:红影(“枪”兄弟一直要求破解,最近无聊所以就拿它开刀了)
原因:软件的服务器已经关闭,程序需要连接服务器进行验证。所以要去掉验证的部分,使验证成为空壳。
★过程部分★
程序由ASPR老版本加壳,不会手脱的可以用AsprStripper脱壳,脱壳以后用可以用静态分析工具C32ASM或IDA等静态分析软件分析!注意,网络验证的程序都会发送一个数据包,里面包含IP和用户输入的资料,所以查看了一下,发现了一个IP地址,由于该服务器已经关闭,连接起来也慢,所以索性用HEX编辑器查找该IP地址,修改成本地的IP,192.168.0.1,这样返回数据能快一点(个人感觉^_^)。因为由输入框所以下断GetDlgItemTextA,碰碰运气,断下了几次后来发现了一条PUSH 0042723C,压入的就是IP地址。可以直接在这里下断的,停在这里以后,慢慢跟,
00401C88 . 68 3C724200 push REDSHADO.0042723C ; ASCII "192.168.0.1" ★在这里下断
00401C8D . 68 94A94200 push REDSHADO.0042A994 ; ASCII "431"
00401C92 . 68 74A94200 push REDSHADO.0042A974 ; ASCII "124"
00401C97 . E8 73F3FFFF call REDSHADO.0040100F ★F8直接跳过,跟进去也没什么东西
00401C9C . 83C4 0C add esp,0C
00401C9F . 8945 FC mov dword ptr ss:[ebp-4],eax
00401CA2 . 8B55 FC mov edx,dword ptr ss:[ebp-4]
00401CA5 . 8955 F0 mov dword ptr ss:[ebp-10],edx ; WS2_32.71A3224C
00401CA8 . 837D F0 64 cmp dword ptr ss:[ebp-10],64
00401CAC . 7F 27 jg short REDSHADO.00401CD5 ★这里不能跳,跳了就没戏了
00401CAE . 837D F0 64 cmp dword ptr ss:[ebp-10],64
00401CB2 . E9 D2000000 je REDSHADO.00401D89 ★注意这里,其他的调转动态跟一下就知道跳哪去了,只要这里跳就不会验证了
00401CB7 00 db 00
00401CB8 . 8B45 F0 mov eax,dword ptr ss:[ebp-10]
00401CBB . 83C0 01 add eax,1
00401CBE . 8945 F0 mov dword ptr ss:[ebp-10],eax
00401CC1 . 837D F0 04 cmp dword ptr ss:[ebp-10],4
00401CC5 . 0F87 67010000 ja REDSHADO.00401E32
00401CCB . 8B4D F0 mov ecx,dword ptr ss:[ebp-10]
00401CCE . 0F84 D1000000 jmp dword ptr ds:[ecx*4+401E8F]
00401CD5 > 817D F0 C8000000 cmp dword ptr ss:[ebp-10],0C8
00401CDC . 0F84 33010000 je REDSHADO.00401E15
00401CE2 . 817D F0 2C010000 cmp dword ptr ss:[ebp-10],12C
00401CE9 . 0F84 26010000 je REDSHADO.00401E15
00401CEF . 817D F0 90010000 cmp dword ptr ss:[ebp-10],190
00401CF6 . 0F84 19010000 je REDSHADO.00401E15
00401CFC . E9 31010000 jmp REDSHADO.00401E32
00401D01 > \8BF4 mov esi,esp
00401D03 . 68 B8AA4200 push REDSHADO.0042AAB8 ; /Text = ""
00401D08 . 68 F9030000 push 3F9 ; |ControlID = 3F9 (1017.)
00401D0D . 8B55 08 mov edx,dword ptr ss:[ebp+8] ; |SHELL32.004E04E0
00401D10 . 52 push edx ; |hWnd = 71A3224C
00401D11 . FF15 E0D54200 call dword ptr ds:[<&user32.SetDlgIt>; \SetDlgItemTextA
00401D17 . 3BF4 cmp esi,esp
00401D19 . E8 A2190000 call REDSHADO.004036C0
00401D1E . E9 0F010000 jmp REDSHADO.00401E32
00401D23 > 8BF4 mov esi,esp
00401D25 . 68 28724200 push REDSHADO.00427228 ; /Text = "Winsock 32....!"
00401D2A . 68 F9030000 push 3F9 ; |ControlID = 3F9 (1017.)
00401D2F . 8B45 08 mov eax,dword ptr ss:[ebp+8] ; |SHELL32.004E04E0
00401D32 . 50 push eax ; |hWnd = 00000002
00401D33 . FF15 E0D54200 call dword ptr ds:[<&user32.SetDlgIt>; \SetDlgItemTextA
这个比较简单。因为“枪”兄弟一直没搞定,要我帮下忙,所以就再这里献丑了。
修改处00401CB2 将JE REDSHADO.00401E15修改为JMP REDSHADO.00401E15
偶是菜鸟。希望能给刚刚入门的兄弟们一点启发~^_^附件是已经修改的程序源程序我不知道哪下“枪”兄弟知道哪有的下。附件加壳了。
注:这个软件是红月的外挂,应该比较老了。所以验证方法比较简单~
点击下载:附件!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)