GeekCat 发表于 2014-6-25 04:37:32

PanoramaStudio v2.1.2 Pro 爆破

本帖最后由 geekcat 于 2014-6-25 04:46 编辑

【文章标题】:PanoramaStudio v2.1.2 Pro   爆破【文章作者】: geekcat
【作者邮箱】: [email protected]
【作者主页】:
【软件名称】: PanoramaStudio v2.1.2 Pro
【软件大小】: 5.23 MB (5,491,009 字节)
【加壳方式】: 无
【保护方式】: 注册码
【编写语言】: Borland C++ 1999
【使用工具】: OD、PEID、DEDE、PE Explorer
【操作平台】: XP SP3【下载地址】:http://www.tshsoft.com/en/index【破解声明】:破解在于交流思路和过程,结果并不重要,请不要用于非法用途;
【软件介绍】:PanoramaStudio 能制作无缝的360度全景图片,在几个步骤之内就能将简单的图片合成为完美的全景图,并为高级用户提供了强大的图片处理功能 。【破解声明】:PYG第九轮作业3--------------------------------------------------------------------------------------------------------------------------------【破解过程】
思路:1)程序运行出现模态对话框,想去掉这个NAG框来达到破解,由于水平太差没成功;2)查找字符串来切入验证体系,没找到有用信息;3)API函数下断,能断下太返回太多前后花了差多1个半小时还没找到放弃;4)没办法最后只能用工具DEDE来直接找按钮事件。
1、DEDE载入程序,在注册窗体里找到三个按钮事件;用PPE Explorer查找具体是那个按钮,翻了一会还是没找到,OD载入程序F9跑起来输入注册信息果断三个全下断,点击“OK”断到按钮事件上;代码:
0046E42C/.55            push ebp                                 ;按钮事件0046E42D|.8BEC          mov ebp,esp0046E42F|.83C4 8C       add esp,-0x740046E432|.53            push ebx0046E433|.56            push esi0046E434|.57            push edi………………………………………………………………………………………………………省略去中间N多代码 0046E605|> \50            push eax0046E606|.8B15 9C284D00 mov edx,dword ptr ds:          ;Panorama.004D26140046E60C      FF52 68       call dword ptr ds:             ;关键CALL0046E60F|.83C4 08       add esp,0x80046E612|.BA 02000000   mov edx,0x20046E617|.50            push eax0046E618|.8D45 E8       lea eax,dword ptr ss:0046E61B|.FF4D B8       dec dword ptr ss:0046E61E|.E8 15CA0300   call Panorama.004AB0380046E623|.FF4D B8       dec dword ptr ss:0046E626|.8D45 EC       lea eax,dword ptr ss:0046E629|.BA 02000000   mov edx,0x20046E62E|.E8 05CA0300   call Panorama.004AB0380046E633|.59            pop ecx0046E634|.85C9          test ecx,ecx0046E636|.0F84 BC010000 je Panorama.0046E7F8                     ;关键跳 跳就注册失败0046E63C|.66:C745 AC 50>mov word ptr ss:,0x50………………………………………………………………………………………………………省略去中间N多代码 0046E803|.83F8 02       cmp eax,0x20046E806|.7E 0D         jle short Panorama.0046E8150046E808|.8B15 BC644D00 mov edx,dword ptr ds:[<&VCL50.@Forms@App>;Vcl50.@Forms@Application0046E80E|.8B02          mov eax,dword ptr ds:0046E810|.E8 A5D90300   call <jmp.&VCL50.@Forms@TApplication@Ter>;注册时点OK后有很大的缓冲0046E815|>68 D0070000   push 0x7D0                               ; /Timeout = 2000. ms0046E81A|.E8 69E70300   call <jmp.&KERNEL32.Sleep>               ; \Sleep0046E81F|.68 18DB0000   push 0xDB180046E824|.E8 7FE60300   call <jmp.&PALNG._LoadRStr>                         ;出现 注册信息错误0046E829|.59            pop ecx0046E82A|.8BD8          mov ebx,eax
2、按钮事件里CALL很多,一个一个具体分析的话容易出错把头转晕而且花时间也多,今天听了Nisy大大的第八课,正好听到 “如果一个CALL调用地方太多一般不是关键CALL” 按照这个方法以及要跳过下面的注册出错误这两个原则,找到关键CALL及关键跳转,F7进关键CALL;代码:
1004442F      CC            int310044430   .8B4424 04   mov eax,dword ptr ss:10044434   .57            push edi10044435   .8B7C24 0C   mov edi,dword ptr ss:10044439   .50            push eax1004443A   .E8 41FDFBFF   call ppano.10004180                         ;F7进:看到这段代码没有对eax赋值等操作1004443F   .83C4 04       add esp,0x410044442   .5F            pop edi10044443   .C3            retn
3、F7进上面1004443A   .E8 41FDFBFF   call ppano.10004180 代码:………………………………………………………………………………………………………省略去上面N多代码 100041D8|.^\75 FA         \jnz short ppano.100041D4100041DA|>E8 61280500   call ppano.10056A40                      ;F7进去可以找到另一个爆破点100041DF|.84C0          test al,al100041E1|.74 1A         je short ppano.100041FD100041E3|.803D DEAD1510>cmp byte ptr ds:,0xE7100041EA|.75 11         jnz short ppano.100041FD100041EC|.803D DDAD1510>cmp byte ptr ds:,0xF6100041F3|.75 08         jnz short ppano.100041FD100041F5|.B8 01000000   mov eax,0x1100041FA|.5E            pop esi100041FB|.5B            pop ebx100041FC|.C3            retn100041FD|>5E            pop esi100041FE|.33C0          xor eax,eax                              ;爆破点:or eax,eax或mov al,110004200|.5B            pop ebx10004201\.C3            retn
4、F7进上面100041DA|>E8 61280500   call ppano.10056A40代码:
10056D5A|.E8 41020000   call ppano.10056FA010056D5F|.8B8C24 DC0400>mov ecx,dword ptr ss:10056D66|.8A4424 13   mov al,byte ptr ss:                  ;爆破点:mov al,1或把esp+0x13修改为esp-/+上一个数值,使它所在内存中的值不为零10056D6A|.5F            pop edi10056D6B|.5E            pop esi10056D6C|.64:890D 00000>mov dword ptr fs:,ecx10056D73|.5B            pop ebx10056D74|.8BE5          mov esp,ebp10056D76|.5D            pop ebp10056D77\.C3            retn
----------------------------------------------------------------------------------------------------------------------------【破解总结】:1、关键字符串查找不到,这点做好;2、API函数能断下但返回点找不位,使分析者花很多精力而放弃;3、只修改关键跳转还是注册失败,有二次验证但在关键CALL里没找到这个二次验证调用的地方;4、这个二次验证调用的地方应该在关键CALL与上面第3步中第一个爆破点之间(如果在这个爆破点之后调用来实现二次验证,那这个地方爆破就会失败);5、这个软件再高版本就换C++写的,没有搞定。6、想用DUP2来做DLL的补丁(今天N大的第八介绍了DUP怎样做exe文件补丁),最终没折腾出这个用这个DLL的补丁,到N大说了怎样做DLL再回来补做一个;----------------------------------------------------------------------------------------------------------------------------【版权声明】:本文原创于geekcat,转载请注明作者并保存文章的完整!

LCC 发表于 2014-6-25 10:45:01

赞一个!赞一个!

DaShanRen 发表于 2014-6-25 11:09:01

新版的也不难爆破。

GeekCat 发表于 2014-6-26 08:57:14

DaShanRen 发表于 2014-6-25 11:09
新版的也不难爆破。

新手啊,争取一天一个,以第九轮的作业为目标多练手!写错了的,没写好的多多指教!

jeremy 发表于 2014-7-15 16:49:47

感谢,学习了!

xinbinchi 发表于 2016-7-6 20:30:56

路过必顶,谢谢分享。

tsycjl 发表于 2018-7-22 14:09:53

好东西,谢谢分享!学习学习,受教了,有没有最新版的爆破???
页: [1]
查看完整版本: PanoramaStudio v2.1.2 Pro 爆破