刚刚接触破解工作,就碰到了硬骨头,请各位帮忙。
程序是调用用文件来注册的,在注册文件中,有时间限制、版本信息等项。注册文件中附加了2048位rsa数字签名信息。算法破解是不可能了,只能通过爆破的方式来去掉各种限制。
通过ollydbg跟踪到:
..............................................
004A0E76 |> \6A 00 PUSH 0
004A0E78 |. 6A 00 PUSH 0
004A0E7A |. 8B4B 04 MOV ECX,[DWORD DS:EBX+4]
004A0E7D |. 51 PUSH ECX
004A0E7E |. 57 PUSH EDI
004A0E7F |. 8B45 C8 MOV EAX,[DWORD SS:EBP-38]
004A0E82 |. 50 PUSH EAX
004A0E83 |. 8B53 08 MOV EDX,[DWORD DS:EBX+8]
004A0E86 |. 52 PUSH EDX
004A0E87 E8 52680300 CALL <JMP.&ADVAPI32.CryptVerifySignatureA> ;
004A0E8C 85C0 TEST EAX,EAX
004A0E8E 0F94C0 SETNE AL ; 判断签名是否正确
004A0E91 |. 83E0 01 AND EAX,1
004A0E94 |. 8B55 D0 MOV EDX,[DWORD SS:EBP-30]
004A0E97 |. 64:8915 00000>MOV [DWORD FS:0],EDX
004A0E9E |> \5F POP EDI
004A0E9F |. 5E POP ESI
004A0EA0 |. 5B POP EBX
004A0EA1 |. 8BE5 MOV ESP,EBP
004A0EA3 |. 5D POP EBP
004A0EA4 \. C3 RETN
看来 SETNE AL 是签名的关键跳转,在这里 SETNE 改为sete后,程序的各种限制倒是去掉了,但程序和无法和数据 库的连接。
以下是我跟踪的数据 库连接部分,
00409E3F > /8B55 C8 MOV EDX,[DWORD SS:EBP-38]
00409E42 . |8B42 38 MOV EAX,[DWORD DS:EDX+38]
00409E45 . |BA E8030000 MOV EDX,3E8
00409E4A . |E8 6BBD0C00 CALL
<JMP.&rtl60.@Scktcomp@TWinSocketStream@>; 连接 数据 库的 函数
00409E4F . |66:C745 DC 08>MOV [WORD SS:EBP-24],8
00409E55 . |84C0 TEST AL,AL
00409E57 |74 3A JE SHORT aaa.00409E93 ;
...................................................................
从WinSocketStream函数起,程序无法和后台 数据 库进行通信, 这里作强行修改也是无用,
因为程序要从数据库中进行读写操作。
到此我

已经是迷漫,请各位帮忙。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课