最近破解一个软件,它有如下的运行特点,实在是找不到方法下手,哪位大虾看看?
1.一个进程A创建另外一个进程B,B不能单独运行。(这个对soft-ice来说,问题不大)
2。可以确认使用的是hasp狗,但是它使用自己编写的dll(rapidh32.dll,里面有hasp输出函数)
3。对大多数API,或者自己的dll函数,使用一段公用代码来调用:P2CS:0041A8C2 cmp dword ptr [ebp+34h], 3
P2CS:0041A8C6 jb loc_41A8DC
P2CS:0041A8CC jz loc_41A8DC
P2CS:0041A8D2 push offset loc_41A8DF
P2CS:0041A8D7 mov ecx, [ebp+14h] //这里调用函数,通用模块
。。。。。。。。。。。。。。。
P2CS:0041A8DA jmp dword ptr [ecx]
P2CS:0041A8DC loc_41A8DC: ; CODE XREF: P2CS:0041A915 push dword ptr [edx] ; pMem
P2CS:0041A917 sub [esp+14h+var_14], 4
P2CS:0041A91B call GlobalHandle
P2CS:0041A920 push eax ; hMem
P2CS:0041A921 push eax ; hMem
P2CS:0041A922 call GlobalUnlock
P2CS:0041A927 call GlobalFree
。。。。。。。。。。。。。。。。。。。。。
P2CS:0041A95F pop ecx
P2CS:0041A960 pop edi
P2CS:0041A961 add esp, 0Ch
P2CS:0041A964 mov ebx, ds:dword_441018
P2CS:0041A96A jmp ds:off_41A0B8[edx] //这里使用跳转,跟踪的话来到ED9cc8这样的高端地址!
4。调用这个模块之后,没有ret指令,而是使用jmp来代替!并且跟踪到一块儿高端地址空间(ED9CC8),无法找到判断点
5。没有软件狗的情况下,在保存文件的功能上时而可以使用,时而不能使用(弹出对话框(MessageBoxExA),显示This is an evluation version…………)
最头疼的是第三点和第四点,即使下了bpio之后,也不知道去分析哪块代码?这是不是也算anti-debug啊?应该很强了吧?有没有什么好点儿的办法对付呢?
[培训]科锐逆向工程师培训第53期2025年7月8日开班!