首页
社区
课程
招聘
TMPGEnc PLUS 2K3下万能断点爆破,菜鸟必看,高手莫入!
发表于: 2005-3-11 09:49 6392

TMPGEnc PLUS 2K3下万能断点爆破,菜鸟必看,高手莫入!

2005-3-11 09:49
6392
TMPGEnc PLUS 2.58.44.152 简体汉化版 2K3下万能断点爆破

【软件功能】:日本人编的AVI==>MPEG转换程序
【软件主页】:http://www.pegasys-inc.com/
【功能限制】:没发现,14天试用时间
【破解工具】:OllyDbg、W32Dasm、PEiD
【本文作者】:好好学习(恨浩)
【整理时间】:2005.3.11
【破解原因】:转VCD需要用到该软件,下载来一看要注册,小日本的咚咚,采用强爆法。
【目标下载】:http://www.softsea.net/download.php?id=112025

用PEiD检测,无壳,Borland Delphi 4.0 - 5.0
运行TMPGEnc.exe,出现注册画面,有“注册”、“试用”、“退出”三个选项。
点击“注册”,输入假序列号“123456”,提示“错误的序列号”
修改系统时间到30天后,运行TMPGEnc,提示“试用期已结束”,试用按钮为灰色不可用。调回系统时间,还是如此。

W32Dasm上阵,察看串式参考,全是乱码,无可用信息

用蛋壳的方法,在user32模块中查找F3A58BC883E103处的地址为77CF0EFE是我机器的万能断点。
运行OD加载TMPGEnc.exe,查看=〉执行模块,双击“user32”,Ctrl+g,去到77CF0EFE处,F2下断。
F9运行,点击“注册”,输入假序列号“123456”,“确定”后,断在内存代码77CF0EFE处,F2取消断点,Alt+F9,OD回到程序代码中,一路F8,来到这里:

0052207D   |.  84C0        test al,al
0052207F   |.  75 05       jnz short TMPGEnc.00522086
00522081   |.  E8 DA9CEEFF call TMPGEnc.0040BD60
00522086   |>  8D55 EC     lea edx,dword ptr ss:[ebp-14]
00522089   |.  8B45 F8     mov eax,dword ptr ss:[ebp-8]
0052208C   |.  E8 FF65EEFF call TMPGEnc.00408690
00522091   |.  8B45 EC     mov eax,dword ptr ss:[ebp-14]
00522094   |.  8D55 F0     lea edx,dword ptr ss:[ebp-10]
00522097   |.  E8 EC66EEFF call TMPGEnc.00408788
0052209C   |.  8B55 F0     mov edx,dword ptr ss:[ebp-10]
0052209F   |.  8D45 F8     lea eax,dword ptr ss:[ebp-8]
005220A2   |.  E8 BD1BEEFF call TMPGEnc.00403C64
005220A7   |.  A1 F0635A00 mov eax,dword ptr ds:[5A63F0]
005220AC   |.  8B00        mov eax,dword ptr ds:[eax]
005220AE   |.  66:BA F5FF  mov dx,0FFF5
005220B2   |.  E8 B5A9F1FF call TMPGEnc.0043CA6C
005220B7   |.  33C0        xor eax,eax
005220B9   |.  55          push ebp
005220BA   |.  68 7C215200 push TMPGEnc.0052217C
005220BF   |.  64:FF30     push dword ptr fs:[eax]
005220C2   |.  64:8920     mov dword ptr fs:[eax],esp
005220C5   |.  8B45 F8     mov eax,dword ptr ss:[ebp-8]
005220C8   |.  E8 97E7FFFF call TMPGEnc.00520864              //找注册码一定得跟。
005220CD   |.  84C0        test al,al                         //测试al是否为1,不为1下面的跳转就不会跳,不跳就死!
005220CF       75 71       jnz short TMPGEnc.00522142         //这里可以跳过下面那个死亡之CALL。
005220D1   |.  E8 CE4AEEFF call <jmp.&kernel32.GetTickCount>             ; [GetTickCount
005220D6   |.  50          push eax
005220D7   |.  8B45 FC     mov eax,dword ptr ss:[ebp-4]
005220DA   |.  8B80 140300>mov eax,dword ptr ds:[eax+314]
005220E0   |.  5A          pop edx
005220E1   |.  2BC2        sub eax,edx
005220E3   |.  99          cdq
005220E4   |.  33C2        xor eax,edx
005220E6   |.  2BC2        sub eax,edx
005220E8   |.  3D B80B0000 cmp eax,0BB8
005220ED   |.  7D 1C       jge short TMPGEnc.0052210B
005220EF   |.  8B45 F8     mov eax,dword ptr ss:[ebp-8]
005220F2   |.  8B55 FC     mov edx,dword ptr ss:[ebp-4]
005220F5   |.  8B92 180300>mov edx,dword ptr ds:[edx+318]
005220FB   |.  E8 741EEEFF call TMPGEnc.00403F74
00522100   |.  74 09       je short TMPGEnc.0052210B
00522102   |.  8B45 FC     mov eax,dword ptr ss:[ebp-4]
00522105   |.  FF80 1C0300>inc dword ptr ds:[eax+31C]
0052210B   |>  8B45 FC     mov eax,dword ptr ss:[ebp-4]
0052210E   |.  83B8 1C0300>cmp dword ptr ds:[eax+31C],14
00522115   |.  7E 0A       jle short TMPGEnc.00522121
00522117   |.  68 401F0000 push 1F40                                     ; /Timeout = 8000. ms
0052211C   |.  E8 734BEEFF call <jmp.&kernel32.Sleep>                    ; \Sleep
00522121   |>  8D55 F0     lea edx,dword ptr ss:[ebp-10]
00522124   |.  A1 A85C5A00 mov eax,dword ptr ds:[5A5CA8]
00522129   |.  E8 8E3AEEFF call TMPGEnc.00405BBC
0052212E   |.  8B4D F0     mov ecx,dword ptr ss:[ebp-10]
00522131   |.  B2 01       mov dl,1
00522133   |.  A1 647A4000 mov eax,dword ptr ds:[407A64]
00522138   |.  E8 8B9CEEFF call TMPGEnc.0040BDC8
0052213D   |.  E8 E214EEFF call TMPGEnc.00403624               //这里将带你走向死亡
00522142   |> \33C0        xor eax,eax
00522144   |.  5A          pop edx
00522145   |.  59          pop ecx
00522146   |.  59          pop ecx
00522147   |.  64:8910     mov dword ptr fs:[eax],edx
0052214A   |.  68 83215200 push TMPGEnc.00522183
0052214F   |>  E8 504AEEFF call <jmp.&kernel32.GetTickCount>             ; [GetTickCount
00522154   |.  8B55 FC     mov edx,dword ptr ss:[ebp-4]
00522157   |.  8982 140300>mov dword ptr ds:[edx+314],eax
0052215D   |.  8B45 FC     mov eax,dword ptr ss:[ebp-4]
00522160   |.  05 18030000 add eax,318
00522165   |.  8B55 F8     mov edx,dword ptr ss:[ebp-8]
00522168   |.  E8 B31AEEFF call TMPGEnc.00403C20
0052216D   |.  A1 F0635A00 mov eax,dword ptr ds:[5A63F0]
00522172   |.  8B00        mov eax,dword ptr ds:[eax]
00522174   |.  33D2        xor edx,edx
00522176   |.  E8 F1A8F1FF call TMPGEnc.0043CA6C
0052217B   \.  C3          retn

下面请出W32Dasm:来到00520864处:

* Referenced by a CALL at Addresses:
|:00520C63   , :00520EC8   , :00521176   , :005220C8   
|
:00520864 55                      push ebp
:00520865 8BEC                    mov ebp, esp
:00520867 81C4D4FEFFFF            add esp, FFFFFED4
:0052086D 53                      push ebx
:0052086E 56                      push esi
:0052086F 33D2                    xor edx, edx
:00520871 8995E0FEFFFF            mov dword ptr [ebp+FFFFFEE0], edx
:00520877 8995DCFEFFFF            mov dword ptr [ebp+FFFFFEDC], edx
:0052087D 8BF0                    mov esi, eax
以下代码略.................

共有4处CALL00520864
分别看一下,此CALL返回后,都是测试al,为0就死~~~!!
OK~~动手修理它......
用什么工具就不用我说了吧~~~

:00520864 55                      push ebp
:00520865 8BEC                    mov ebp, esp

改为:
:00520864 B0 01                   mov al,1                  //将1放入al
:00520865 C3                      retn                      //返回

运行修改后的TMPGEnc,,已经没有注册提示,但还有“试用”字样,查看关于,还有“试用期剩下多少天的提示”,修改系统到30天后,同样能正常运行,调回系统时间,天数为负数了~~哈哈,随便用多久。。。。放心的用。

为了更完美一点,在注册表:
HKEY_CURRENT_USER\SOFTWARE\Pegasys Inc.\TMPGEnc Plus\2.5
添加如下信息:
SerialID=123456

现在运行程序,“试用”已经没有了,看看关于,序列号“123456”哈哈!OK了!

小结:
简单爆破,主要是运用万能断点在无法找到可用信息的软件中下断,适合于新手学习。
这段时间有点忙,要不然就跟它的序列号了,有兴趣的兄弟可以跟一下!

                                                    好好学习
                                                        3.11

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习一下
支持
2005-3-11 11:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
********************************************************
用蛋壳的方法,在user32模块中查找F3A58BC883E103处的地址为77CF0EFE是我机器的万能断点。
运行OD加载TMPGEnc.exe,查看=〉执行模块,双击“user32”,Ctrl+g,去到77CF0EFE处,F2下断。
*******************************************************

想请教楼主一个问题,你这个万能断点是怎么弄的?有没有关于“万能断点”的更多的信息?谢谢
2005-3-11 12:31
0
雪    币: 221
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
http://bbs.pediy.com/showthread.php?s=&threadid=11843
2005-3-11 13:13
0
雪    币: 214
活跃值: (70)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
学习。。。。。
2005-3-12 10:16
0
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6

关于这个软件的破解技巧,学会用万能断点断到关键处,如果查找自己电脑OD万能断点:
在USER32模块搜索:
F3 A5 FF 75 08 8B C8 83 E1 03 F3 A4 E8 [2K系统]
F3 A5 8B C8 83 E1 03 F3 A4 E8 [XP系统]
出来的地址就是万能断点。


这个万能断点的原理是什么呢?为什么要搜那些字符??谁能解释一下?
2005-3-12 16:14
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
最初由 usb-hdd 发布



这个万能断点的原理是什么呢?为什么要搜那些字符??谁能解释一下?
2005-3-13 19:33
0
游客
登录 | 注册 方可回帖
返回
//