首页
社区
课程
招聘
[原创]Flash屏保DIY V1.2完美爆破
发表于: 2005-2-24 09:47 4988

[原创]Flash屏保DIY V1.2完美爆破

2005-2-24 09:47
4988
0:02 2005-2-24
目标:FlashSaverDIY.exe
版本V1.2
下载地址:中国共享软件注册中心
          排行榜位于第一位,值得推荐!!!!!
未注册,有很多限制,例如会在生成的屏保文件中生成“由未注册版……制作”字样。
因为追注册算法让我伤脑筋,改为爆破,安慰下自已,希望论坛的朋友能追出注册算法。
在《流行论坛》看到了它的不完美爆破,所以将这破文发表出来,(本来是拿不出手的呀。)
ASPack 2.12 -> Alexey Solodovnikov
OEP:00499448
aspackdie.exe轻松脱壳,连修复输入表的工作都免了。
再扫描,发现:
Borland Delphi 6.0 - 7.0
输入假码,则要求,重启才能验证。
难在不知如何才能断下来!!!!
只好爆破了。
因为软件会要求重启验证,但是不知在那里读取注册信息。也不想找了。
工具:Peid.exe,Aspackdie.exe,C32Asm.exe,OD

用Aspackdie脱壳后,
用C32Asm.exe查找字串:

找到:Flash屏保DIY 1.2 [注册用户:]
      Call ::00498980-> PUSH 498A1C
这里找到一些关键代码:
::00498923::  00FF                     ADD BH,BH                                                   在这里下断看看                        
::00498925::  FF                       ???                                    
::00498926::  FF                       ???                                    
::00498927::  FF09                     DEC DWORD PTR [ECX]                     
::00498929::  0000                     ADD [EAX],AL                           
::0049892B::  005C48 65                ADD [EAX+ECX*2+65],BL                  
::0049892F::  6C                       INS BYTE PTR ES:[EDI],DX               
::00498930::  70 2E                    JO SHORT 00498960                       \:JMPDOWN
::00498932::  6368 6D                  ARPL [EAX+6D],EBP                       
::00498935::  0000                     ADD [EAX],AL                           
::00498937::  00CC                     ADD AH,CL                              
::00498939::  E1 CA                    LOOPDE SHORT 00498905                   \:JMPUP
::0049893B::  BE 00000000              MOV ESI,0                              
::00498940::  B0 EF                    MOV AL,EF                              
::00498942::  D6                       SALC                                    
::00498943::  FA                       CLI                                    
::00498944::  CE                       INTO                                    
::00498945::  C4BCFE 2848656C          LES EDI,[ESI+EDI*8+6C654828]            
::0049894C::  70 2E                    JO SHORT 0049897C                       \:JMPDOWN
::0049894E::  6368 6D                  ARPL [EAX+6D],EBP                       
::00498951::  29B2 BBB4E6D4            SUB [EDX+D4E6B4BB],ESI                  
::00498957::  DAA1 A3000055            FISUB DWORD PTR [ECX+550000A3]         
::0049895D::  8BEC                     MOV EBP,ESP                             
::0049895F::  6A 00                    PUSH 0                                 
::00498961::  6A 00                    PUSH 0                                 
::00498963::  6A 00                    PUSH 0                                 
::00498965::  53                       PUSH EBX                                
::00498966::  8BD8                     MOV EBX,EAX                             
::00498968::  33C0                     XOR EAX,EAX                             
::0049896A::  55                       PUSH EBP                                
::0049896B::  68 088A4900              PUSH 498A08                                 \->: 槊蚌?脎?]???x1B
::00498970::  64:FF30                  PUSH DWORD PTR FS:[EAX]                 
::00498973::  64:8920                  MOV FS:[EAX],ESP                        
::00498976::  A1 ACC54900              MOV EAX,[49C5AC]                        
::0049897B::  8038 00                  CMP BYTE PTR [EAX],0      改为8038 01就是注册版,最好的办法是:[49C5AC]指向的地址中写入01,就不会有任何未破解的地方!                                                           那么这里就是关键的标志的比较啦!               
::0049897E::  74 2D                    JE SHORT 004989AD                       \:JMPDOWN                                   这可是关键跳转呀!!
::00498980::  68 1C8A4900              PUSH 498A1C                                 \->: Flash屏保DIY 1.2 [注册用户:
::00498985::  A1 DCCA4900              MOV EAX,[49CADC]                        
::0049898A::  FF30                     PUSH DWORD PTR [EAX]                    
::0049898C::  68 408A4900              PUSH 498A40                                 \->: ]
::00498991::  8D45 FC                  LEA EAX,[EBP-4]                        
::00498994::  BA 03000000              MOV EDX,3                              
::00498999::  E8 32BBF6FF              CALL 004044D0                           \:JMPUP
::0049899E::  8B55 FC                  MOV EDX,[EBP-4]                        
::004989A1::  A1 74E34900              MOV EAX,[49E374]                        
::004989A6::  E8 317BFBFF              CALL 004504DC                           \:JMPUP
::004989AB::  EB 0F                    JMP SHORT 004989BC                      \:JMPDOWN
::004989AD::  BA 4C8A4900              MOV EDX,498A4C                          \:BYJMP JmpBy:0049897E,    \->: Flash屏保DIY 1.2 [未注册]
又看这里:
::00495D54::  55                       PUSH EBP                                
::00495D55::  68 325E4900              PUSH 495E32                                 \->: ?荟?脎?]?
::00495D5A::  64:FF30                  PUSH DWORD PTR FS:[EAX]                 
::00495D5D::  64:8920                  MOV FS:[EAX],ESP                        
::00495D60::  8D55 FC                  LEA EDX,[EBP-4]                        
::00495D63::  8B83 04030000            MOV EAX,[EBX+304]                       
::00495D69::  E8 3EA7FBFF              CALL 004504AC                           \:JMPUP
::00495D6E::  837D FC 00               CMP DWORD PTR [EBP-4],0                 
::00495D72::  0F84 86000000            JE 00495DFE                             \:JMPDOWN
::00495D78::  8D55 F8                  LEA EDX,[EBP-8]                        
::00495D7B::  8B83 0C030000            MOV EAX,[EBX+30C]                       
::00495D81::  E8 26A7FBFF              CALL 004504AC                           \:JMPUP
::00495D86::  837D F8 00               CMP DWORD PTR [EBP-8],0                 
::00495D8A::  74 72                    JE SHORT 00495DFE                       \:JMPDOWN
::00495D8C::  8D55 F4                  LEA EDX,[EBP-C]                        
::00495D8F::  8B83 10030000            MOV EAX,[EBX+310]                       
::00495D95::  E8 12A7FBFF              CALL 004504AC                           \:JMPUP
::00495D9A::  837D F4 00               CMP DWORD PTR [EBP-C],0                 
::00495D9E::  74 5E                    JE SHORT 00495DFE                       \:JMPDOWN
::00495DA0::  6A 40                    PUSH 40                                 
::00495DA2::  68 405E4900              PUSH 495E40                                 \->: 提示
::00495DA7::  68 485E4900              PUSH 495E48                                 \->: 感谢您注册Flash屏保DIY,请重新启动Flash屏保DIY,来确认注册成功与否。
::00495DAC::  8BC3                     MOV EAX,EBX                             
::00495DAE::  E8 190FFCFF              CALL 00456CCC                           \:JMPUP
::00495DB3::  50                       PUSH EAX                                
::00495DB4::  E8 BB0FF7FF              CALL 00406D74                           \:JMPUP
::00495DB9::  8D55 F0                  LEA EDX,[EBP-10]                        
::00495DBC::  8B83 10030000            MOV EAX,[EBX+310]                       
::00495DC2::  E8 E5A6FBFF              CALL 004504AC                           \:JMPUP
::00495DC7::  8B45 F0                  MOV EAX,[EBP-10]                        
::00495DCA::  50                       PUSH EAX                                
::00495DCB::  8D55 EC                  LEA EDX,[EBP-14]                        
::00495DCE::  8B83 0C030000            MOV EAX,[EBX+30C]                       
::00495DD4::  E8 D3A6FBFF              CALL 004504AC                           \:JMPUP
::00495DD9::  8B45 EC                  MOV EAX,[EBP-14]                        
::00495DDC::  50                       PUSH EAX                                
::00495DDD::  8D55 E8                  LEA EDX,[EBP-18]                        
::00495DE0::  8B83 04030000            MOV EAX,[EBX+304]                       
::00495DE6::  E8 C1A6FBFF              CALL 004504AC                           \:JMPUP
::00495DEB::  8B45 E8                  MOV EAX,[EBP-18]                        
::00495DEE::  5A                       POP EDX                                 
::00495DEF::  59                       POP ECX                                 
::00495DF0::  E8 D7F8FFFF              CALL 004956CC                           \:JMPUP
::00495DF5::  8BC3                     MOV EAX,EBX                             
::00495DF7::  E8 DC74FDFF              CALL 0046D2D8                           \:JMPUP
::00495DFC::  EB 19                    JMP SHORT 00495E17                      \:JMPDOWN
::00495DFE::  6A 40                    PUSH 40                                 \:BYJMP JmpBy:00495D72,00495D8A,00495D9E,
::00495E00::  68 405E4900              PUSH 495E40                                 \->: 提示
::00495E05::  68 905E4900              PUSH 495E90                                 \->: 请将注册信息填写完整。

::00495020::  68 BE514900              PUSH 4951BE                             \:BYJMP JmpBy:00494FB9,    \->: 檐x0D轹?脒^[?]???x1F
::00495025::  64:FF30                  PUSH DWORD PTR FS:[EAX]                 
::00495028::  64:8920                  MOV DWORD PTR FS:[EAX],ESP              \:BYJMP JmpBy:00494FC1,
::0049502B::  A1 ACC54900              MOV EAX,DWORD PTR [49C5AC]              
::00495030::  8038 00                  CMP BYTE PTR [EAX],0                                     改为CMP BYTE PTR [EAX],1就是注册版                  
::00495033::  0F84 50010000            JE 00495189                             \:JMPDOWN       跳到未注册版不能检测新版本

追注册码有点困难,主要是不知在那里才能断下来!!!
修改这两处,虽然显示为注册版,也可以上网升级,但是生成屏保文件,依然会同时生成:由非注册版制作之类的东东,太不好看。
不过我们已经发现它的注册标志在那里了。在OD中用“内存读取”断点,可以发现:
DWORD PTR [49C5AC]里面会藏着标志值所在的地址0049B174,在写入时修改一下,让它变为1,那么不要输入任何注册信息,也会成为注册版!!!                        

我们用C32asm.exe搜索一下字串 [49C5AC]  找到这么多!!!         
::0047B61A::  A1 ACC54900              MOV EAX,DWORD PTR [49C5AC]               这里也会效验注册标志吗?
::0049502B::  A1 ACC54900              MOV EAX,DWORD PTR [49C5AC]               未注册不能在网上升级的限制            
::0049775E::  A1 ACC54900              MOV EAX,DWORD PTR [49C5AC]               注册码不正确,就会在这里将标志赋值0
::004977D4::  8B15 ACC54900            MOV EDX,DWORD PTR [49C5AC] \:BYJMP JmpBy:004977D0,  注册码正确,就会到这里,这里将使注册标志值为1
::004983E5::  8B15 ACC54900            MOV EDX,DWORD PTR [49C5AC]                注册成功,生成的屏保文件,才不会有“由未注册版软件制作”字样
::00498976::  A1 ACC54900              MOV EAX,DWORD PTR [49C5AC]                注册成功Form的Caption会改为:注册版            

我们来修改:
1,
::0047B61A::  A1 ACC54900              MOV EAX,DWORD PTR [49C5AC]              
::0047B61F::  8A00                     MOV AL,BYTE PTR [EAX]                                 
修改为:

::0047B61A::  A1 ACC54900              MOV EAX,[49C5AC]                        
::0047B61F::  B0 01                    MOV AL,1            我们强行给AL赋值1                              

2,

::0049775E::  A1 ACC54900              MOV EAX,DWORD PTR [49C5AC]              
::00497763::  C600 00                  MOV BYTE PTR [EAX],0              同样,Ptr[EAX]指向0049B174,这里面才会是真正的标志值,怎能被赋值0呢                  
修改为:

::0049775E::  A1 ACC54900              MOV EAX,[49C5AC]                        
::00497763::  C600 01                  MOV BYTE PTR [EAX],1                 我们人为改它为1

3,

::004983E5::  8B15 ACC54900            MOV EDX,DWORD PTR [49C5AC]              
::004983EB::  8A12                     MOV DL,BYTE PTR [EDX]              Ptr[EDX]中得到标志值,可能它是用来在生成的屏保文件中加上“由未注册版软件制作”的作用                  
修改为:                                       
::004983E5::  8B15 ACC54900            MOV EDX,[49C5AC]                        
::004983EB::  B2 01                    MOV DL,1                          当然要改为1                     
因为软件在安装时,已获取你的用户名,现在不用输入任何信息,你已是注册用户了!

Cracked by 网络情缘

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 348
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个软件已经有内存注册机了。
2005-2-24 20:18
0
雪    币: 3134
活跃值: (2018)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
3
我不要注册机,能告诉我注册算法吗?是那位兄弟的作品?在那里可以见到贴子?
谢谢!!!!!!
2005-2-24 23:32
0
雪    币: 296
活跃值: (265)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
4
内存注册机,前后注册码都是八位才去比较
2005-2-26 12:45
0
游客
登录 | 注册 方可回帖
返回