SWF 探索者 1.4 的破解
程序员文章站
2022-03-12 16:54:27
初学破解!请大侠指导!
版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
【破文标题】SWF探索者1.4的破解
【破文作者】云瑞
【作者性别】男
... 08-10-08...
初学破解!请大侠指导!
版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
【破文标题】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 dfc7f3ff jmp unpacked.004041cc
004c79ed .^eb f0 jmp short unpacked.004c79df
004c79ef . 8d4d dc lea ecx,dword ptr ss:[ebp-24]
004c79f2 . a1 10244d00 mov eax,dword ptr ds:[4d2410]
004c79f7 . 8b00 mov eax,dword ptr ds:[eax]
004c79f9 . ba b47a4c00 mov edx,unpacked.004c7ab4 ; ascii "thanksreg"
004c79fe . e8 31edffff call unpacked.004c6734
004c7a03 . 8b45 dc mov eax,dword ptr ss:[ebp-24]
004c7a06 . e8 3592f7ff call unpacked.00440c40
004c7a0b . a1 04254d00 mov eax,dword ptr ds:[4d2504]
004c7a10 . 8b00 mov eax,dword ptr ds:[eax]
004c7a12 . e8 851cfaff call unpacked.0046969c
004c7a17 . 33c0 xor eax,eax
004c7a19 . 5a pop edx ; kernel32.7c81774d
004c7a1a . 59 pop ecx ; kernel32.7c81774d
然后我就对此处下断,向上看,发现regcode,估计在此处将进行某些处理。004c79c5 |. ba a47a4c00 mov edx,unpacked.004c7aa4 ; ascii "regcode"
004c79ca |. 8b45 fc mov eax,dword ptr ss:[ebp-4]
004c79cd |. e8 d6f6fbff call 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:8910 mov dword ptr fs:[eax],edx ; ntdll.kifastsystemcallret
004c79da |. 68 ef794c00 push unpacked.004c79ef
004c79df |> 8b45 fc mov eax,dword ptr ss:[ebp-4]
004c79e2 |. e8 51c0f3ff call unpacked.00403a38
004c79e7 \. c3 retn
004c79e8 .^e9 dfc7f3ff jmp unpacked.004041cc
004c79ed .^eb f0 jmp short unpacked.004c79df
004c79ef . 8d4d dc lea ecx,dword ptr ss:[ebp-24]
004c79f2 . a1 10244d00 mov eax,dword ptr ds:[4d2410]
004c79f7 . 8b00 mov eax,dword ptr ds:[eax]
004c79f9 . ba b47a4c00 mov edx,unpacked.004c7ab4 ; ascii "thanksreg"
004c79fe . e8 31edffff call unpacked.004c6734
004c7a03 . 8b45 dc mov eax,dword ptr ss:[ebp-24]
打开ollgdbg,对004c79c5也下断,然后按f9运行,没有断到需要的东西,估计在初始化时生成了注册码,然后存在某地址处,于是,就重新下断,
后来找到
00487058 |. e8 7bdcf7ff call unpacked.00404cd8
0048705d |. 50 push eax ; |valuename = null
0048705e |. 8b46 04 mov eax,dword ptr ds:[esi 4] ; |
00487061 |. 50 push eax ; |hkey = 0
00487062 |. e8 31fef7ff call ; \regqueryvalueexa(个人认为与注册有关!)
00487067 |. 85c0 test eax,eax
00487069 |. 0f94c3 sete bl
0048706c |. 8b0424 mov eax,dword ptr ss:[esp] ; kernel32.7c81774d
0048706f |. e8 50fcffff call unpacked.00486cc4
00487074 |. 8845 00 mov byte ptr ss:[ebp],al
00487077 |. 8bc3 mov eax,ebx
00487079 |. 5a pop edx ; kernel32.7c81774d
于是就下端,然后遇到seh,用shirt f7单步跟踪,在7c82dad4位置停下,在堆栈窗口12ec4c会发现一个ascii字符串“d092e68f”这个就是注册码了,嘿嘿!
版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
【破文标题】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 dfc7f3ff jmp unpacked.004041cc
004c79ed .^eb f0 jmp short unpacked.004c79df
004c79ef . 8d4d dc lea ecx,dword ptr ss:[ebp-24]
004c79f2 . a1 10244d00 mov eax,dword ptr ds:[4d2410]
004c79f7 . 8b00 mov eax,dword ptr ds:[eax]
004c79f9 . ba b47a4c00 mov edx,unpacked.004c7ab4 ; ascii "thanksreg"
004c79fe . e8 31edffff call unpacked.004c6734
004c7a03 . 8b45 dc mov eax,dword ptr ss:[ebp-24]
004c7a06 . e8 3592f7ff call unpacked.00440c40
004c7a0b . a1 04254d00 mov eax,dword ptr ds:[4d2504]
004c7a10 . 8b00 mov eax,dword ptr ds:[eax]
004c7a12 . e8 851cfaff call unpacked.0046969c
004c7a17 . 33c0 xor eax,eax
004c7a19 . 5a pop edx ; kernel32.7c81774d
004c7a1a . 59 pop ecx ; kernel32.7c81774d
然后我就对此处下断,向上看,发现regcode,估计在此处将进行某些处理。004c79c5 |. ba a47a4c00 mov edx,unpacked.004c7aa4 ; ascii "regcode"
004c79ca |. 8b45 fc mov eax,dword ptr ss:[ebp-4]
004c79cd |. e8 d6f6fbff call 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:8910 mov dword ptr fs:[eax],edx ; ntdll.kifastsystemcallret
004c79da |. 68 ef794c00 push unpacked.004c79ef
004c79df |> 8b45 fc mov eax,dword ptr ss:[ebp-4]
004c79e2 |. e8 51c0f3ff call unpacked.00403a38
004c79e7 \. c3 retn
004c79e8 .^e9 dfc7f3ff jmp unpacked.004041cc
004c79ed .^eb f0 jmp short unpacked.004c79df
004c79ef . 8d4d dc lea ecx,dword ptr ss:[ebp-24]
004c79f2 . a1 10244d00 mov eax,dword ptr ds:[4d2410]
004c79f7 . 8b00 mov eax,dword ptr ds:[eax]
004c79f9 . ba b47a4c00 mov edx,unpacked.004c7ab4 ; ascii "thanksreg"
004c79fe . e8 31edffff call unpacked.004c6734
004c7a03 . 8b45 dc mov eax,dword ptr ss:[ebp-24]
打开ollgdbg,对004c79c5也下断,然后按f9运行,没有断到需要的东西,估计在初始化时生成了注册码,然后存在某地址处,于是,就重新下断,
后来找到
00487058 |. e8 7bdcf7ff call unpacked.00404cd8
0048705d |. 50 push eax ; |valuename = null
0048705e |. 8b46 04 mov eax,dword ptr ds:[esi 4] ; |
00487061 |. 50 push eax ; |hkey = 0
00487062 |. e8 31fef7ff call ; \regqueryvalueexa(个人认为与注册有关!)
00487067 |. 85c0 test eax,eax
00487069 |. 0f94c3 sete bl
0048706c |. 8b0424 mov eax,dword ptr ss:[esp] ; kernel32.7c81774d
0048706f |. e8 50fcffff call unpacked.00486cc4
00487074 |. 8845 00 mov byte ptr ss:[ebp],al
00487077 |. 8bc3 mov eax,ebx
00487079 |. 5a pop edx ; kernel32.7c81774d
于是就下端,然后遇到seh,用shirt f7单步跟踪,在7c82dad4位置停下,在堆栈窗口12ec4c会发现一个ascii字符串“d092e68f”这个就是注册码了,嘿嘿!