Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198819
  • 博文数量: 104
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 1275
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-17 20:51
文章分类
文章存档

2010年(11)

2009年(43)

2008年(50)

我的朋友

分类: WINDOWS

2010-02-02 21:52:20

随便找了一个视频文件 飓风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) |
给主人留下些什么吧!~~