随便找了一个视频文件 飓风8.0加密的
od载入,很简单,esp定律进入,飓风8.0,9.0版本的都是一样的壳,9.7版本的不是这个壳了,后边的版本我没看,中断几次后就到了入口。这个壳没有难度 就不一一讲述了。
004A9BD3 > $ E8 00000000 call 004A9BD8
004A9BD8 $ 60 pushad
004A9BD9 . E8 4F000000 call 004A9C2D ; esp定律,硬件断点进入壳
004A9BDE . 3C 27 cmp al, 27
004A9BE0 . 0BFC or edi, esp
004A9BE2 . 67:6A 57 push 57
004A9BE5 . 0FAF82 96B1A7>imul eax, dword ptr [edx+4AA7B196]
查找字符串
00480BF4 mov eax, 00481040 播放授权不合法!
00480C03 mov eax, 0048105C 播放授权不正确!
00480C82 mov edx, 00481078 yaomediakj1jf
00480D4B mov eax, 00481090 播放密码不正确
00480D70 push 004810A8 c:\china-drm\
00480DAF push 004810C0 .ini
00480E43 mov eax, 00481090 播放密码不正确
00480E7C mov edx, 004810D0 yaomediakj2jf
00480F6C mov eax, 00481090 播放密码不正确
00480F98 mov edx, 004810E8 ok
00481160 mov edx, 0048141C yaomediakj3jf
00481288 mov edx, 00481434 3
00481294 push 00481440 c:\china-drm\
004812BD push 00481458 mediakjjf
0048131A mov edx, 0048147C 0
0048148B mov eax, 004814B4 确信要退出吗?
004814CE mov edx, 004814E8 ok
进入 00480C82 mov edx, 00481078 yaomediakj1jf 下断点
进入 00481160 mov edx, 0048141C yaomediakj3jf 下断点
之所以不在yaomediakj2jf下断点 那是因为yaomediakj1jf和yaomediakj2jf很近而且这里连续有几个比较,直接跟
随便输入8位密码,确定。
00480C82 BA 78104800 mov edx, 00481078 ; yaomediakj1jf
00480C87 E8 CC3DF8FF call 00404A58
00480C8C 8B85 C4FDFFFF mov eax, dword ptr [ebp-23C]
00480C92 8D95 C8FDFFFF lea edx, dword ptr [ebp-238]
00480C98 E8 7B2E0000 call 00483B18
00480C9D 8B85 C8FDFFFF mov eax, dword ptr [ebp-238]
00480CA3 8D95 CCFDFFFF lea edx, dword ptr [ebp-234]
00480CA9 E8 7A7AF8FF call 00408728
00480CAE 8B85 CCFDFFFF mov eax, dword ptr [ebp-234]
00480CB4 8D95 E8FDFFFF lea edx, dword ptr [ebp-218]
00480CBA E8 496AFEFF call 00467708
00480CBF 8D85 E8FDFFFF lea eax, dword ptr [ebp-218]
00480CC5 8D95 D0FDFFFF lea edx, dword ptr [ebp-230]
00480CCB E8 AC6AFEFF call 0046777C
00480CD0 8B85 D0FDFFFF mov eax, dword ptr [ebp-230]
00480CD6 8D8D D4FDFFFF lea ecx, dword ptr [ebp-22C]
00480CDC BA 02000000 mov edx, 2
00480CE1 E8 42E9FAFF call 0042F628
00480CE6 8B85 D4FDFFFF mov eax, dword ptr [ebp-22C]
00480CEC 8D95 E8FDFFFF lea edx, dword ptr [ebp-218]
00480CF2 E8 116AFEFF call 00467708
00480CF7 8D85 E8FDFFFF lea eax, dword ptr [ebp-218]
00480CFD 8D55 F0 lea edx, dword ptr [ebp-10]
00480D00 E8 776AFEFF call 0046777C
00480D05 8D8D C0FDFFFF lea ecx, dword ptr [ebp-240]
00480D0B BA 02000000 mov edx, 2
00480D10 A1 D8AD4800 mov eax, dword ptr [48ADD8]
00480D15 E8 0EE9FAFF call 0042F628
00480D1A 8B85 C0FDFFFF mov eax, dword ptr [ebp-240]
00480D20 8D95 E8FDFFFF lea edx, dword ptr [ebp-218]
00480D26 E8 DD69FEFF call 00467708
00480D2B 8D85 E8FDFFFF lea eax, dword ptr [ebp-218]
00480D31 8D55 EC lea edx, dword ptr [ebp-14]
00480D34 E8 436AFEFF call 0046777C
00480D39 8B45 F0 mov eax, dword ptr [ebp-10] ;这里放入的是正确的前两位
00480D3C 8B55 EC mov edx, dword ptr [ebp-14] ; 注意这里,把你的密码的前两位放入eax进行比较
00480D3F E8 583EF8FF call 00404B9C
00480D44 0F95C0 setne al
00480D47 84C0 test al, al
00480D49 74 0F je short 00480D5A
内存补丁只能够修改指令, 有两种做法,一是直接修改00480D49 把je改成jne 我采用第二种做法,让eax和edx相等
直接把00480D3C改为 mov edx,eax 或者是eax, dword ptr [ebp-10]
往下 一共有4个地方需要改
第二处
00480E27 E8 4021F8FF call 00402F6C
00480E2C E8 F31AF8FF call 00402924
00480E31 8B45 F0 mov eax, dword ptr [ebp-10] ; 真的
00480E34 8B55 EC mov edx, dword ptr [ebp-14] ; 假的
00480E37 E8 603DF8FF call 00404B9C
第三处
00480E48 E8 77B8FAFF call 0042C6C4
00480E4D E9 69010000 jmp 00480FBB
00480E52 8B45 F0 mov eax, dword ptr [ebp-10] ; 真的
00480E55 8B55 EC mov edx, dword ptr [ebp-14] ; 假的
00480E58 E8 3F3DF8FF call 00404B9C
第四处
00480F46 8D95 E8FDFFFF lea edx, dword ptr [ebp-218]
00480F4C E8 B767FEFF call 00467708
00480F51 8D85 E8FDFFFF lea eax, dword ptr [ebp-218]
00480F57 8D55 EC lea edx, dword ptr [ebp-14]
00480F5A E8 1D68FEFF call 0046777C
00480F5F 8B45 F0 mov eax, dword ptr [ebp-10] ; 真的
00480F62 8B55 EC mov edx, dword ptr [ebp-14] ; 假的
00480F65 E8 323CF8FF call 00404B9C
00480F6A 74 0C je short 00480F78
00480F6C B8 90104800 mov eax, 00481090 ; 播放密码不正确
第五处
由于这里是先得到假的 所以不能用mov eax,edx了 直接把mov的地址指向正确的地址了,改为mov eax, dword ptr [ebp-10]
00480F8E E8 59050000 call 004814EC
00480F93 A1 047F4800 mov eax, dword ptr [487F04]
00480F98 BA E8104800 mov edx, 004810E8 ; ok
00480F9D E8 4238F8FF call 004047E4
00480FA2 8B55 EC mov edx, dword ptr [ebp-14] ; 假的,这里得注意一下,这里是先入的eax
00480FA5 8B45 F0 mov eax, dword ptr [ebp-10] ; 真的
00480FA8 E8 B777F8FF call 00408764
第六处
F9运行,到达yaomediakj3jf 往下,这次不能直接修改比较的地址了,貌似飓风用两位有特殊用处,如果该比较的地址,能进入播放界面但是不能播放视频。经过跟踪,发现在比较的前边,飓风有一个截取输入的密码最后两位的动作,不知道是做什么用的。把004811DE指向正确的地址就行,由于004811B6到004811DE ebp都没变化,计算都省略了 ,直接改为 mov eax, dword ptr [ebp-30]
004811AC BA 02000000 mov edx, 2
004811B1 E8 E2E4FAFF call 0042F698
004811B6 8B45 D0 mov eax, dword ptr [ebp-30] ; 正确的最后两位的播放密码
004811B9 8D55 D4 lea edx, dword ptr [ebp-2C]
004811BC E8 4765FEFF call 00467708
004811C1 8D45 D4 lea eax, dword ptr [ebp-2C]
004811C4 8D55 FC lea edx, dword ptr [ebp-4]
004811C7 E8 B065FEFF call 0046777C
004811CC 8D4D B8 lea ecx, dword ptr [ebp-48]
004811CF BA 02000000 mov edx, 2
004811D4 A1 D8AD4800 mov eax, dword ptr [48ADD8]
004811D9 E8 BAE4FAFF call 0042F698
004811DE 8B45 B8 mov eax, dword ptr [ebp-48] ; 把错误的播放密码放进去了
004811E1 8D55 D4 lea edx, dword ptr [ebp-2C]
004811E4 E8 1F65FEFF call 00467708
004811E9 8D45 D4 lea eax, dword ptr [ebp-2C]
004811EC 8D55 F8 lea edx, dword ptr [ebp-8]
004811EF E8 8865FEFF call 0046777C
004811F4 8B45 FC mov eax, dword ptr [ebp-4]
004811F7 8B55 F8 mov edx, dword ptr [ebp-8]
004811FA E8 9D39F8FF call 00404B9C
F9 开始播放
至此 一共修改了
第一处
00480D3C 8B55 EC mov edx, dword ptr [ebp-14]
00480D3C 8B55 F0 mov eax, dword ptr [ebp-10]
第二处
00480E34 8B55 EC mov edx, dword ptr [ebp-14]
00480E34 8B55 F0 mov edx, dword ptr [ebp-10]
第三处
00480E55 8B55 EC mov edx, dword ptr [ebp-14]
00480E55 8B55 F0 mov edx, dword ptr [ebp-10]
第四处
00480F62 8B55 EC mov edx, dword ptr [ebp-14]
00480F62 8B55 F0 mov edx, dword ptr [ebp-10]
第五处
00480FA2 8B55 EC mov edx, dword ptr [ebp-14]
00480FA2 8B55 F0 mov edx, dword ptr [ebp-10]
第六处
004811DE 8B45 B8 mov eax, dword ptr [ebp-48]
004811DE 8B45 D0 mov eax, dword ptr [ebp-30]
Keymake很简单
在菜单中选择内存补丁,然后依次填入,再点击生成就可以了,飓风8.0,9.0的壳有校验,如果用文件补丁的话会出错
最后顺便把防止翻录破了
在查找字符串中找到
00482F3A edx, 00483118 scap.exe|camtasia|captivate|capture|easysnap|fsvideo|hprsnap|courseware|htserver|hycam|lcsc.exe|m4uscreen|scrcam|myscrmycut|屏录|ly.exe|sph.exe|rdfsnap|screencapture|snagit|screenvcr|wmenc.exe|screen|flash|view|letcam|audio|lxj.exe|snap|vampire|webex
双击进去
00482F1C E8 03FBFFFF call 00482A24
00482F21 85C0 test eax, eax
00482F23 0F84 9D010000 je 004830C6
00482F29 8D55 F0 lea edx, dword ptr [ebp-10]
00482F2C 8B85 CCFEFFFF mov eax, dword ptr [ebp-134]
00482F32 E8 BD030000 call 004832F4
00482F37 8D45 F4 lea eax, dword ptr [ebp-C]
00482F3A BA 18314800 mov edx, 00483118 ; scap.exe|camtasia|captivate|capture|easysnap|fsvideo|hprsnap|courseware|htserver|hycam|lcsc.exe|m4uscreen|scrcam|myscrmycut|屏录|ly.exe|sph.exe|rdfsnap|screencapture|snagit|screenvcr|wmenc.exe|screen|flash|view|letcam|audio|lxj.exe|snap|vampire|webex
00482F3F E8 E418F8FF call 00404828
把00482F23改为jne就可以了
和上边一样 填入Keymake
完成
8.0版本和9.0版本的破解方法一样 只是输入密码的时候需要输入以9d打头的共18位字符。
使用内存补丁有一个好处就是所有用这一个版本的飓风加密的文件你都可以过,不用每个还去算号,去跟。不足之处是你必须把文件名改为你制作补丁选择的文件名
由于时间比较少,我只试了8.0版本和9.0版本,这样可以过,其他版本没试,如果核心算法没变,应该也是可以的。反正飙风8.0-9.0变化的仅仅是输入密码的长度而已,对于这个破解方法,我们完全无视。
阅读(1167) | 评论(0) | 转发(0) |