SWF 探索者 1.4 的破解
番茄系统家园 · 2022-03-14 02:50:07
初学破解!请大侠指导!
版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
【破文标题】SWF探索者1.4的破解
【破文作者】云瑞
【作者性别】男
【作者主页】您的主页
【作者邮箱】melove95@163.com
【所属组织】第九舰队
【软件名称】SWF探索者1.4
【下载地址】
【破解工具】OLLYDBG1.10,C32ASM,unpecompact,peid0.92汉
【保护方式】PECPMPACT1.68-1.84
【软件限制】时间限制
【破解难度】中等
----------------------------------------------------
软件介绍:
很不错的动画播放器,以前有人破解过1.1和1.2,
----------------------------------------------------
破解声名:
----------------------------------------------------
【破解分析】
首先安装SWF探索者1.4,运行程序,在关于中输入注册信息,用户名:king,注册email:winners365@163.com,注册码999555(当然是错误的),然后点注册,出现THANKSREG!然后用peid 打开程序,是用pecompact1.68-1.84加的壳,我用专用脱壳工具unpecompact,脱壳,保存为unpacked.然后用C32ASM0.412反汇编,点字符串搜索,看到thanksreg,然后双击,来到代码处,004C79E8 .^E9 DFC7F3FFJMP unpacked.004041CC
004C79ED .^EB F0JMP SHORT unpacked.004C79DF
004C79EF . 8D4D DCLEA ECX,DWORD PTR SS:[EBP-24]
004C79F2 . A1 10244D00MOV EAX,DWORD PTR DS:[4D2410]
004C79F7 . 8B00 MOV EAX,DWORD PTR DS:[EAX]
004C79F9 . BA B47A4C00MOV EDX,unpacked.004C7AB4;ASCII "ThanksReg"
004C79FE . E8 31EDFFFFCALL unpacked.004C6734
004C7A03 . 8B45 DCMOV EAX,DWORD PTR SS:[EBP-24]
004C7A06 . E8 3592F7FFCALL unpacked.00440C40
004C7A0B . A1 04254D00MOV EAX,DWORD PTR DS:[4D2504]
004C7A10 . 8B00 MOV EAX,DWORD PTR DS:[EAX]
004C7A12 . E8 851CFAFFCALL unpacked.0046969C
004C7A17 . 33C0 XOR EAX,EAX
004C7A19 . 5A POP EDX;kernel32.7C81774D
004C7A1A . 59 POP ECX;kernel32.7C81774D
然后我就对此处下断,向上看,发现regcode,估计在此处将进行某些处理。004C79C5|. BA A47A4C00MOV EDX,unpacked.004C7AA4;ASCII "RegCode"
004C79CA|. 8B45 FCMOV EAX,DWORD PTR SS:[EBP-4]
004C79CD|. E8 D6F6FBFFCALL unpacked.004870A8
004C79D2|. 33C0 XOR EAX,EAX
004C79D4|. 5A POP EDX;kernel32.7C81774D
004C79D5|. 59 POP ECX;kernel32.7C81774D
004C79D6|. 59 POP ECX;kernel32.7C81774D
004C79D7|. 64:8910MOV DWORD PTR FS:[EAX],EDX ;ntdll.KiFastSystemCallRet
004C79DA|. 68 EF794C00PUSH unpacked.004C79EF
004C79DF|> 8B45 FCMOV EAX,DWORD PTR SS:[EBP-4]
004C79E2|. E8 51C0F3FFCALL unpacked.00403A38
004C79E7. C3 RETN
004C79E8 .^E9 DFC7F3FFJMP unpacked.004041CC
004C79ED .^EB F0JMP SHORT unpacked.004C79DF
004C79EF . 8D4D DCLEA ECX,DWORD PTR SS:[EBP-24]
004C79F2 . A1 10244D00MOV EAX,DWORD PTR DS:[4D2410]
004C79F7 . 8B00 MOV EAX,DWORD PTR DS:[EAX]
004C79F9 . BA B47A4C00MOV EDX,unpacked.004C7AB4;ASCII "ThanksReg"
004C79FE . E8 31EDFFFFCALL unpacked.004C6734
004C7A03 . 8B45 DCMOV EAX,DWORD PTR SS:[EBP-24]
打开OLLGDBG,对004C79C5也下断,然后按F9运行,没有断到需要的东西,估计在初始化时生成了注册码,然后存在某地址处,于是,就重新下断,
后来找到
00487058|. E8 7BDCF7FFCALL unpacked.00404CD8
0048705D|. 50 PUSH EAX ; |ValueName = NULL
0048705E|. 8B46 04MOV EAX,DWORD PTR DS:[ESI 4] ; |
00487061|. 50 PUSH EAX ; |hKey = 0
00487062|. E8 31FEF7FFCALL ; egQueryValueExA(个人认为与注册有关!)
00487067|. 85C0 TEST EAX,EAX
00487069|. 0F94C3 SETE BL
0048706C|. 8B0424 MOV EAX,DWORD PTR SS:[ESP] ;kernel32.7C81774D
0048706F|. E8 50FCFFFFCALL unpacked.00486CC4
00487074|. 8845 00MOV BYTE PTR SS:[EBP],AL
00487077|. 8BC3 MOV EAX,EBX
00487079|. 5A POP EDX;kernel32.7C81774D
于是就下端,然后遇到SEH,用SHIRTF7单步跟踪,在7C82DAD4位置停下,在堆栈窗口12EC4C会发现一个ASCII字符串“D092E68F”这个就是注册码了,嘿嘿!

