104952551 发表于 2021-11-22 16:40

某知名ERP管理软件爆破方法(适合新手)

软件名:GJ婆ERP(无壳)
软件版本:T9 Top v20.5(需要的自己网上找)
破解方法:爆破(非模拟狗)
所需工具:OD吾爱版

教程开始:
1.思路:破解一款软件,首先你要了解这个软件有哪些限制?它是通过什么方法实现的?你要如何处理?当你有了这些思路才能把它办掉。
2.开整:
2.1软件打开会提示你服务器端没找到加密狗,所以我们要把服务器端加密狗类型改成软狗,所谓软狗就相当于是个注册码,不需要你插硬件狗就行。
做完这一步就是开始搞客户端了。
2.2.1断点返回法,先让软件跑起来弹出注册框后随便输入一串码后反回OD暂停,一路执行到返回(Ctrl+F9)直到可以点软件的“确定”按钮后再一路执行到返回(Ctrl+F9)直到返回程序领空。看是从哪个call中出来的,出来后到哪里做了判断(判断是否真码)……
2.2.2 简单的方法是有提示“绑定失败,请稍后重试。”,直接搜这个也行,上面的方法可以不用了,如果你用了说明你看完教程就上了,哈哈~~
直接上代码:

005CBC90   . /EB 3E         jmp short GraspStd.005CBCD0            ;注册狗关键跳,我是jnz改的jmp
005CBC92   . |8D45 D0       lea eax,dword ptr ss:
005CBC95   . |8B55 FC       mov edx,dword ptr ss:
005CBC98   . |E8 2357E3FF   call <jmp.&rtl150.System::UStrFromWStr>
005CBC9D   . |8B45 D0       mov eax,dword ptr ss:
005CBCA0   . |33D2          xor edx,edx                              ;GraspStd.<ModuleEntryPoint>
005CBCA2   . |E8 3165E3FF   call <jmp.&rtl150.Sysutils::SameText>
005CBCA7   . |84C0          test al,al
005CBCA9   . |74 0D         je short GraspStd.005CBCB8
005CBCAB   . |8D45 FC       lea eax,dword ptr ss:
005CBCAE   . |BA 9CBE5C00   mov edx,GraspStd.005CBE9C                ;绑定失败,请稍后重试。
005CBCB3   . |E8 D855E3FF   call <jmp.&rtl150.System::WStrLAsg>
005CBCB8   > |8D45 CC       lea eax,dword ptr ss:
005CBCBB   . |8B55 FC       mov edx,dword ptr ss:
005CBCBE   . |E8 FD56E3FF   call <jmp.&rtl150.System::UStrFromWStr>
005CBCC3   . |8B45 CC       mov eax,dword ptr ss:
005CBCC6   . |E8 5D95E3FF   call <jmp.&GraspCMRunStd.Udllmessageintf>
005CBCCB   . |E9 A6000000   jmp GraspStd.005CBD76
005CBCD0   > \A1 94496F00   mov eax,dword ptr ds:



2.2.3上面的也可以跳过,就是检测加密狗的时候跳,就不会弹注册框了
可以直接搜软件启动时弹出的 “正在检测加密狗,请稍候...”字符串找到地址(方法看注解):
006A7FD4   .BA 38856A00   mov edx,GraspStd.006A8538                ;正在检测加密狗,请稍候...
006A7FD9   .E8 BA4CFAFF   call GraspStd.0064CC98
006A7FDE   .A1 144B6F00   mov eax,dword ptr ds:          ;╡o
006A7FE3   .8B00          mov eax,dword ptr ds:
006A7FE5   .E8 2EB0D5FF   call <jmp.&vcl150.Controls::TControl::Re>
006A7FEA   >A1 70496F00   mov eax,dword ptr ds:
006A7FEF   .8B00          mov eax,dword ptr ds:
006A7FF1   .E8 76CDEEFF   call GraspStd.00594D6C
006A7FF6   .E9 A5000000   jmp GraspStd.006A80A0
006A7FFB   >A1 D4496F00   mov eax,dword ptr ds:
006A8000   .33D2          xor edx,edx                              ;GraspStd.<ModuleEntryPoint>
006A8002   .8910          mov dword ptr ds:,edx               ;GraspStd.<ModuleEntryPoint>
006A8004   .A1 BC486F00   mov eax,dword ptr ds:
006A8009   .8338 01       cmp dword ptr ds:,0x1
006A800C   .75 59         jnz short GraspStd.006A8067
006A800E   .8D95 DCFEFFFF lea edx,dword ptr ss:
006A8014   .B8 181A0000   mov eax,0x1A18
006A8019   .E8 FAA1D5FF   call <jmp.&rtl150.Sysutils::IntToStr>
006A801E   .8B95 DCFEFFFF mov edx,dword ptr ss:
006A8024   .8D85 E0FEFFFF lea eax,dword ptr ss:
006A802A   .E8 9993D5FF   call <jmp.&rtl150.System::WStrFromUStr>
006A802F   .8B85 E0FEFFFF mov eax,dword ptr ss:
006A8035   .50            push eax                                 ;kernel32.BaseThreadInitThunk
006A8036   .68 58856A00   push GraspStd.006A8558
006A803B   .A1 4C4B6F00   mov eax,dword ptr ds:          ;deo
006A8040   .8B00          mov eax,dword ptr ds:
006A8042   .8B40 70       mov eax,dword ptr ds:
006A8045   .50            push eax                                 ;kernel32.BaseThreadInitThunk
006A8046   .8D85 E4FEFFFF lea eax,dword ptr ss:
006A804C   .50            push eax                                 ;kernel32.BaseThreadInitThunk
006A804D   .E8 2E94D5FF   call <jmp.&rtl150.System::IntfDispCall>
006A8052   .83C4 10       add esp,0x10
006A8055   .8B95 E4FEFFFF mov edx,dword ptr ss:
006A805B   .A1 94496F00   mov eax,dword ptr ds:
006A8060   .E8 5B93D5FF   call <jmp.&rtl150.System::UStrFromWStr>
006A8065   .EB 39         jmp short GraspStd.006A80A0
006A8067   >8D85 D8FEFFFF lea eax,dword ptr ss:
006A806D   .50            push eax                                 ;kernel32.BaseThreadInitThunk
006A806E   .8D95 D4FEFFFF lea edx,dword ptr ss:
006A8074   .B8 181A0000   mov eax,0x1A18
006A8079   .E8 9AA1D5FF   call <jmp.&rtl150.Sysutils::IntToStr>
006A807E   .8B85 D4FEFFFF mov eax,dword ptr ss:
006A8084   .33C9          xor ecx,ecx
006A8086   .BA 70856A00   mov edx,GraspStd.006A8570                ;DogNo(这个很明显是没有狗了)
006A808B   .E8 7014DCFF   call GraspStd.00469500
006A8090   .8B95 D8FEFFFF mov edx,dword ptr ss:
006A8096   .A1 94496F00   mov eax,dword ptr ds:
006A809B   .E8 D891D5FF   call <jmp.&rtl150.System::UStrAsg>
006A80A0   >A1 044A6F00   mov eax,dword ptr ds:
006A80A5   .8038 01       cmp byte ptr ds:,0x0                     ;此处比较eax是否为0(可以把这里改为1,因为eax到这里后为1)
006A80A8   .74 1C         je short GraspStd.006A80C6               ;或把这里的je改为jmp强跳
006A80AA   .8B4D F0       mov ecx,dword ptr ss:
006A80AD   .33D2          xor edx,edx                              ;GraspStd.<ModuleEntryPoint>
006A80AF   .8B45 CC       mov eax,dword ptr ss:
006A80B2   .E8 21620000   call GraspStd.006AE2D8
006A80B7   .84C0          test al,al
006A80B9   .75 27         jnz short GraspStd.006A80E2            
006A80BB   .8B45 C8       mov eax,dword ptr ss:          ;wow64.74E9E0D8
006A80BE   .C600 01       mov byte ptr ds:,0x1
006A80C1   .E9 CB000000   jmp GraspStd.006A8191
006A80C6   >8B4D F0       mov ecx,dword ptr ss:
006A80C9   .33D2          xor edx,edx                              ;GraspStd.<ModuleEntryPoint>
006A80CB   .8B45 CC       mov eax,dword ptr ss:
006A80CE   .E8 F16F0000   call GraspStd.006AF0C4
006A80D3   .84C0          test al,al
006A80D5   .75 0B         jnz short GraspStd.006A80E2
006A80D7   .8B45 C8       mov eax,dword ptr ss:          ;wow64.74E9E0D8
006A80DA   .C600 01       mov byte ptr ds:,0x1
006A80DD   .E9 AF000000   jmp GraspStd.006A8191
006A80E2   >8B45 CC       mov eax,dword ptr ss:
006A80E5   .C680 55040000>mov byte ptr ds:,0x1
006A80EC   .8B45 CC       mov eax,dword ptr ss:
006A80EF   .E8 04050000   call GraspStd.006A85F8
006A80F4   .84C0          test al,al
006A80F6   .0F84 95000000 je GraspStd.006A8191

至此软件已基本能够使用了,但使用插件时仍会提示未注册不能使用插件
3.于是我们找“----未注册”如果不知道可以在所有未注册上下断,我这里直接上关键代码:
00593FBB|.E8 F8E1E6FF   call <jmp.&rtl150.Sysutils::LowerCase>
00593FC0|.8B45 FC       mov eax,
00593FC3|.BA 84405900   mov edx,GraspStd.00594084                ;/q
00593FC8|.E8 3BD4E6FF   call <jmp.&rtl150.System::UStrEqual>
00593FCD|.74 33         je short GraspStd.00594002
00593FCF|.8D55 E8       lea edx,
00593FD2|.33C0          xor eax,eax                              ;kernel32.BaseThreadInitThunk
00593FD4|.E8 77D0E6FF   call <jmp.&rtl150.System::ParamStr>
00593FD9|.8B45 E8       mov eax,
00593FDC|.8D55 EC       lea edx,
00593FDF|.E8 04E2E6FF   call <jmp.&rtl150.Sysutils::Trim>
00593FE4|.8B45 EC       mov eax,
00593FE7|.8D55 F0       lea edx,
00593FEA|.E8 C9E1E6FF   call <jmp.&rtl150.Sysutils::LowerCase>
00593FEF|.8B45 F0       mov eax,
00593FF2|.BA 98405900   mov edx,GraspStd.00594098                ;q
00593FF7|.E8 0CD4E6FF   call <jmp.&rtl150.System::UStrEqual>
00593FFC|.74 04         je short GraspStd.00594002
00593FFE|.33DB          xor ebx,ebx
00594000|.EB 02         jmp short GraspStd.00594004
00594002|>B3 01         mov bl,0x1
00594004|>A1 484B6F00   mov eax,dword ptr ds:
00594009|.8338 03       cmp dword ptr ds:,0x3
0059400C|.75 0D         jnz short GraspStd.0059401B
0059400E|.BB 10270000   mov ebx,0x2710
00594013|.C706 10270000 mov dword ptr ds:,0x2710
00594019|.EB 33         jmp short GraspStd.0059404E
0059401B|>E8 40FFFFFF   call GraspStd.00593F60                  ;此call是个关键进入后可以看到关键代码
00594020|.84DB          test bl,bl
00594022|.74 21         je short GraspStd.00594045
00594024|.A1 484B6F00   mov eax,dword ptr ds:
00594029|.C700 01000000 mov dword ptr ds:,0x1
0059402F|.A1 D4496F00   mov eax,dword ptr ds:


0059401B|>E8 40FFFFFF   call GraspStd.00593F60    中如下:
00593F60/$A1 0C496F00   mov eax,dword ptr ds:
00593F65|.33D2          xor edx,edx                              ;GraspStd.<ModuleEntryPoint>
00593F67|.8910          mov dword ptr ds:,edx               ;GraspStd.<ModuleEntryPoint>
00593F69|.A1 484B6F00   mov eax,dword ptr ds:
00593F6E|.C700 00000000 mov dword ptr ds:,0x0               把此处改为0
00593F74|.A1 D4496F00   mov eax,dword ptr ds:
00593F79|.C700 00000000 mov dword ptr ds:,0x0               此处也改为0
00593F7F\.C3            retn


至此,所有的限制都可以正常使用了,我用这个版本一年多了,没有任何问题。
如果哪位大佬有更好的方法请指教!

如果你觉得对你有所帮助请给我热心值,我要洗违规点~~~呜~~~~~

ftyujvbn 发表于 2021-11-22 16:55

好活!!!!

dglbh 发表于 2021-11-23 23:10

104952551 发表于 2021-11-23 08:22
这个不用担心,要么改host,要么用我写的一个备份小程序备份数据库,我用了一年多了,没任何问题

你也太小看gjp了,一般host跟备份人家会想不到吗?你看下人家老大之前破解gjp的心得再说!它都是偷偷改数据库的,你认为有问题时,你已经备份好几个月改过的数据!
https://bbs.sunwy.org/forum.php?mod=viewthread&tid=206948&highlight=%C9%F7%D3%C3

longker 发表于 2021-11-22 16:57

厉害了。

pizazzboy 发表于 2021-11-22 17:02

行啊,这么简简单单就PJ了

taozhiyu 发表于 2021-11-22 17:02

学习了!

3yu3 发表于 2021-11-22 17:10

本帖最后由 3yu3 于 2021-11-22 17:14 编辑

这个GJ婆有回传数据,还是小心点用。

zyc457992195 发表于 2021-11-22 17:27

nb了贼厉害

kaixuan1158 发表于 2021-11-22 17:58


好厉害啊!膜拜了

天赤 发表于 2021-11-22 17:58

真不错的资料,正打算学习爆破哩,就有这么好的资料,感谢感谢

C萝卜尔多 发表于 2021-11-22 18:18

有生成脚本点击工单的吗
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 某知名ERP管理软件爆破方法(适合新手)