ohyeah521 发表于 2009-8-6 20:00

DIY个人专版屏幕录像大师

【文章标题】: DIY个人专版屏幕录像大师
【文章作者】: 漏网之鱼
【作者邮箱】: lwzy-crack@163.com
【作者主页】: http://lwzy-crack.blog.163.com
【作者QQ号】: 530747686
【软件名称】: 屏幕录像专家 共享版 V7.5
【下载地址】: 自己搜索下载
【保护方式】: 无壳,自校验
【编写语言】: Borland C++
【使用工具】: PEID 0.95Olldbg1.10RestoratorPE Explorer
【操作平台】: XP sp3
【软件介绍】: 非常好的一款屏幕录像软件。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
准备工作:32*32的icon图片一张,还需要一个会使用键盘和鼠标的人一个。(呵呵!)

开工了。我们先用Restorator载入“屏录专家.exe”,出现了一个资源文件的列表。点击“图标”这个选项前面的“+”展开资源,出现了

3个资源,分别是“MAINICON”、“PAUSE”、“RECORD”我们用我们事先准备好的icon图片替换“MAINICON”这个图标。然后保存。保存以后

呢,我们来运行“屏录专家.exe”,出现一个提示“本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安装”。



通过这个提示,我们知道,是自校验。下面我们来处理这个自校验吧!


用Ollydbg载入目标程序。用字符串插件搜索“本软件已经损坏”,一共有五处,我们分别下 F2断电。

00411904    BA C3EB5400    mov edx,屏录专家.0054EBC3               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



0041260F    BA 38EC5400    mov edx,屏录专家.0054EC38               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



00412664    BA 73EC5400    mov edx,屏录专家.0054EC73               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



004126BC    BA AEEC5400    mov edx,屏录专家.0054ECAE               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



004408B9    BA F10D5500    mov edx,屏录专家.00550DF1               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



————————————————————————————————————

F9运行程序。程序在这里中断下来:

004118DD    E8 36411200    call 屏录专家.00535A18
004118E2    8B8D 8CFEFFFFmov ecx,dword ptr ss:
004118E8    8B81 580C0000mov eax,dword ptr ds:
004118EE    05 18FCFFFF    add eax,-3E8
004118F3    3B85 88FEFFFFcmp eax,dword ptr ss:
004118F9    74 44          je short 屏录专家.0041193F
004118FB    66:C785 A0FEFF>mov word ptr ss:,170
00411904    BA C3EB5400    mov edx,屏录专家.0054EBC3               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安


00411909    8D85 70FFFFFFlea eax,dword ptr ss:
0041190F    E8 583E1200    call 屏录专家.0053576C
————————————————————————————————————


通过分析,我们知道,只有让下面这个跳转实现,程序才能正常运行。有朋友说了,直接改为jmp就可以了。其实不然。这里面另有玄机。
004118F9    74 44          je short 屏录专家.0041193F


要想让上面的跳转实现,只有当 cmp eax,dword ptr ss:,这里的eax的值和的值相等的时候,这个跳转才能实现。

我们在004118F3这个地址F2 下断,重新载入程序,F9运行。提示“ly.exe无法关闭,请与作者联系”,(之所以会有这个提示,是因为刚才屏

幕录像专家程序异常终止,没有把ly.exe的资源释放掉。)这时我们点确定按钮,重新载入,F9运行程序。

======================================
在004118F3中断后,在信息窗口我们发现
堆栈 ss:=000081F1
eax=00004CED
======================================
这时我们用关掉Ollydbg(因为屏幕录像专家不支持多开。呵呵。不过呢,通过技术手段也可以实现多开的。),再用Ollydbg载入原版的程序。

我们在命令行窗口输入
bp004118F3

======================================
F9运行程序,中断后,在信息窗口我们发现
堆栈 ss:=00004CED
eax=00004CED
======================================

通过对比我们发现只有当==EAX的时候,程序才能正常运行。好了,聪明的你该知道从哪里入手了吧。我们在命令行里面输入

dd 0012FD34 (先做一下记录。我们只要观察 这里的值在什么时候等于 =000081F1)


然后在输入

bp CreateFileW


经过了N次F9,当堆栈中出现下面信息的时候,
0012F140   7C801A53/CALL 到 CreateFileW 来自 kernel32.7C801A4E
0012F144   7FFDFC00|FileName = "D:\屏幕录像专家 共享版 V7.5\屏录专家.exe"
0012F148   80000000|Access = GENERIC_READ
0012F14C   00000003|ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
0012F150   00000000|pSecurity = NULL
0012F154   00000003|Mode = OPEN_EXISTING
0012F158   00000080|Attributes = NORMAL
0012F15C   00000000\hTemplateFile = NULL
————————————————————————————————————

清除断点,我们在命令行输入

dd 0012FD34

我们发现,当前的值是0,我们在地址 0012FD34下硬件硬件访问断点-byte;F9运行程序,中断在这里。清除硬件断点

0041152B   .8BC3         mov eax,ebx                         ;停在这里
0041152D   .E8 6A0AFFFFcall 屏录专家.00401F9C
00411532   .8BF8         mov edi,eax
00411534   .33C0         xor eax,eax
00411536   .83C9 FF      or ecx,FFFFFFFF
00411539   .8DB5 7CFAFFF>lea esi,dword ptr ss:
0041153F   .F2:AE      repne scas byte ptr es:
————————————————————————————————————

我们观察内存 0012FD34 处的值变为000081F1
向上看汇编代码
0041151F   .E8 881E0000call 屏录专家.004133AC                  ;我们可以分析出,这个call语句改变了EAX的值
00411524   .59         pop ecx
00411525   .8985 88FEFFF>mov dword ptr ss:,eax
0041152B   .8BC3         mov eax,ebx                         ;停在这里
0041152D   .E8 6A0AFFFFcall 屏录专家.00401F9C
————————————————————————————————————

在0041151F 这里下断点。重新来过,中断后,我们F7跟进去看看,里面是何方妖孽在作乱。进去后,我们一路F8,这时侯,我们要观察寄存器

,什么时候出现“81F1”当程序走过下面的call的时候,我们发现EAX,EDX寄存器的值都变为“81F1”



0041345E   .50         push eax                            ; /Arg3
0041345F   .56         push esi                            ; |Arg2
00413460   .8B55 08      mov edx,dword ptr ss:      ; |
00413463   .52         push edx                            ; |Arg1
00413464   .E8 C3D10300call 屏录专家.0045062C            ; \屏录专家.0045062C
————————————————————————————————————

我们在 00413464F2 下断点。重新来过。当程序中断在00413464 的时候,我们F7跟进去。来到这里:
0045062C/$55         push ebp
0045062D|.8BEC         mov ebp,esp
0045062F|.53         push ebx
00450630|.56         push esi
00450631|.57         push edi
00450632|.8B75 0C      mov esi,dword ptr ss:
00450635|.8B7D 08      mov edi,dword ptr ss:
00450638|.33DB         xor ebx,ebx
0045063A|.68 05800000push 8005                           ; /Arg2 = 00008005
0045063F|.57         push edi                            ; |Arg1
00450640|.E8 37330000call 屏录专家.0045397C                  ; \屏录专家.0045397C
00450645|.83C4 08      add esp,8
00450648|.33C0         xor eax,eax
0045064A|.3B45 10      cmp eax,dword ptr ss:
0045064D|.73 23      jnb short 屏录专家.00450672
0045064F|>0FB7D3       /movzx edx,bx
00450652|.C1FA 08      |sar edx,8
00450655|.33C9         |xor ecx,ecx
00450657|.8A0E         |mov cl,byte ptr ds:
00450659|.46         |inc esi
0045065A|.33D1         |xor edx,ecx
0045065C|.40         |inc eax
0045065D|.C1E3 08      |shl ebx,8
00450660|.66:8B9497 50>|mov dx,word ptr ds:
00450668|.66:33D3      |xor dx,bx
0045066B|.3B45 10      |cmp eax,dword ptr ss:
0045066E|.8BDA         |mov ebx,edx
00450670|.^ 72 DD      \jb short 屏录专家.0045064F
00450672|> \0FB7C3       movzx eax,bx                        ;当程序走到这里的时候,我们发现EBX=81F1
00450675|.8987 600C000>mov dword ptr ds:,eax
0045067B|.8BC3         mov eax,ebx
0045067D|.5F         pop edi
0045067E|.5E         pop esi
0045067F|.5B         pop ebx
00450680|.5D         pop ebp
00450681\.C3         retn
————————————————————————————————————


00450672|> \0FB7C3       movzx eax,bx   
   当程序走到这里的时候,我们看一下寄存器的值
EAX 00204E58
ECX 00000000
EDX 000081F1
EBX 000081F1
ESP 0012F1A4
EBP 0012F1B0
ESI 027C4E5C
========================================


我们在下面的地址开始打补丁

先找一个零区
0054A8DE    0000               add byte ptr ds:,al   ;零区

在零区把下面的补丁代码写上。

===============补丁代码==============
mov   ebx,4CED
mov   edx,ebx
movzx eax,bx
mov   ,eax
jmp   0045067B
=====================================

----------------------------------------------------------------------------
00450672|> \0FB7C3      movzx eax,bx                        ;打补丁
00450675|.8987 600C000> mov dword ptr ds:,eax
0045067B|.8BC3          mov eax,ebx                         ;返回地址

修改为
00450672   /E9 67A20F00          jmp 屏录专家.0054A8DE                  
00450677   |90                   nop
00450678   |90                   nop
00450679   |90                   nop
0045067A   |90                   nop
0045067B   |8BC3               mov eax,ebx
----------------------------------------------------------------------------


代码修改完毕,我们来保存一下。复制所有修改。保存为“修改图标.exe”关闭Ollydbg。

运行 修改图标.exe ,OK 。可以运行。呵呵。这时,我们就修改好了屏幕录像大师的图标了。


好累呀,呵呵,我打字很慢。文章写的还啰嗦。主要是为了让大家都能看懂。高手可以用眼睛扫一下就可以了。别仍我鸡蛋就好啊!









下面我们继续DIY。
我们录制好的录像的图片和屏幕录像大师图标是一样的。看的久了。是不是很难看呀。好吧。下面我就领着大家来修改这个图标。换成自己的

图片。个性一定。虽然我是80后,但是对于90后的非主流我也不持反对态度。我也来个非主流吧。哈哈。

说干就干。我用PE Explorer把“屏录专家.exe”的资源文件都看了一遍,也没有找到生成录像的图标。我就郁闷了。难度作者是动态生成的图

标,不是资源文件,我开始怀疑了。这时呢,一道灵光在我的脑海里面一闪——我想起了灰鸽子配置服务端的dat文件。难道这个图标也在dat

文件里面。我就看了一下软件安装目录内的dat文件。通过字面意思,我一眼就定位到了“犯罪嫌疑人”—— Play.dat

我把Play.dat 文件修改后缀名。改为Play.exe,我发现,图标立刻变成和“屏幕录像.exe”一样了。这就更加证实了我的猜测了。我用

Restorator载入“Play.exe”,出现了一个资源文件的列表。点击“图标”这个选项前面的“+”展开资源,出现了1个“MAINICON”资源,

我用事先准备好的icon图标替换,保存。我们在把Play.exe修改为Play.dat。运行“修改图标.exe”。

出现了一个提示“本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安装”

我晕,又是这个东西,烦死了。看来还有自校验呀。


用Ollydbg载入“修改图标.exe”。用字符串插件搜索“本软件已经损坏”,一共有五处,我们分别下 F2断电。

00411904    BA C3EB5400    mov edx,屏录专家.0054EBC3               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



0041260F    BA 38EC5400    mov edx,屏录专家.0054EC38               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



00412664    BA 73EC5400    mov edx,屏录专家.0054EC73               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



004126BC    BA AEEC5400    mov edx,屏录专家.0054ECAE               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



004408B9    BA F10D5500    mov edx,屏录专家.00550DF1               ; 本软件已经损坏,无法运行,请尝试杀毒,如果没有病毒,请重新安



————————————————————————————————————


F9运行程序。程序在这里中断下来:
004125E0   > \8B85 8CFEFFFF      mov eax,dword ptr ss:
004125E6   .8B90 540C0000      mov edx,dword ptr ds:
004125EC   .81C2 0FFCFFFF      add edx,-3F1
004125F2   .3B95 84FEFFFF      cmp edx,dword ptr ss:
004125F8   .75 0C            jnz short 修改图标.00412606
004125FA   .81BD 84FEFFFF 7067>cmp dword ptr ss:,6770
00412604   .74 44            je short 修改图标.0041264A
00412606   >66:C785 A0FEFFFF F>mov word ptr ss:,2F0


看上面的代码我们知道,这里的校验和上面的原理是一样的。处理方法也一样。在004125F2下断点。重新来过。中断后,信息窗口
004125F2   .3B95 84FEFFFF      cmp edx,dword ptr ss:    ; 这里要让 ==EDX
------信息窗口内容---------
堆栈 ss:=0000CD79
edx=00006770
---------------------------

在命令行里面输入

dd 0012FD30      (先做一下记录。我们只要观察 这里的值在什么时候等于 =00006770)


然后再输入

bp CreateFileW


经过了N次F9,当堆栈中出现下面信息的时候,
0012F190   7C801A53/CALL 到 CreateFileW 来自 kernel32.7C801A4E
0012F194   7FFDFC00|FileName = "D:\屏幕录像专家 共享版 V7.5\\play.dat"
0012F198   80000000|Access = GENERIC_READ
0012F19C   00000003|ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
0012F1A0   00000000|pSecurity = NULL
0012F1A4   00000003|Mode = OPEN_EXISTING
0012F1A8   00000000|Attributes = 0
0012F1AC   00000000\hTemplateFile = NULL
————————————————————————————————————



清除断点,我们在命令行输入

dd 0012FD30

我们发现,当前的值是0012FEFC,我们在地址0012FD30   下硬件硬件访问断点-byte;F9运行程序,中断在这里。清除硬件断点
00411835   .68 8CEB5400      push 修改图标.0054EB8C            ; /FileName = "hhctrl.ocx"
0041183A   .E8 3B871300      call    ; \LoadLibraryA
————————————————————————————————————

我们观察寄存器,发现EAX=CD79

向上看汇编代码
00411829   .E8 8A1D0000      call 修改图标.004135B8                  ;F7跟进去
0041182E   .59               pop ecx
0041182F   .8985 84FEFFFF      mov dword ptr ss:,eax
00411835   .68 8CEB5400      push 修改图标.0054EB8C                  ; /FileName = "hhctrl.ocx"
0041183A   .E8 3B871300      call      ; \LoadLibraryA
————————————————————————————————————

我们在这里00411829下断点。重新来过,程序中断后,F7跟进去,然后一路F8.当程序执行到00413695时,我们观察寄存器EAX=CD79,EDX=CD79

0041368A   .50               push eax                            ; /Arg3
0041368B   .56               push esi                            ; |Arg2
0041368C   .8B55 08            mov edx,dword ptr ss:      ; |
0041368F   .52               push edx                            ; |Arg1
00413690   .E8 EFCF0300      call 修改图标.00450684            ; \修改图标.00450684
00413695   .83C4 0C            add esp,0C
————————————————————————————————————

我们在这里00413690下断点。重新来过。中断后,在这里 F7跟进去。
00413690   .E8 EFCF0300      call 修改图标.00450684            ;F7跟进去



进去后。停在下面的地方:
00450684/$55               push ebp
00450685|.8BEC               mov ebp,esp
00450687|.53               push ebx
00450688|.56               push esi
00450689|.57               push edi
0045068A|.8B75 0C            mov esi,dword ptr ss:
0045068D|.8B7D 08            mov edi,dword ptr ss:
00450690|.33DB               xor ebx,ebx
00450692|.68 05800000      push 8005                           ; /Arg2 = 00008005
00450697|.57               push edi                            ; |Arg1
00450698|.E8 DF320000      call 修改图标.0045397C            ; \修改图标.0045397C
0045069D|.83C4 08            add esp,8
004506A0|.33C0               xor eax,eax
004506A2|.3B45 10            cmp eax,dword ptr ss:
004506A5|.73 23            jnb short 修改图标.004506CA
004506A7|>0FB7D3             /movzx edx,bx
004506AA|.C1FA 08            |sar edx,8
004506AD|.33C9               |xor ecx,ecx
004506AF|.8A0E               |mov cl,byte ptr ds:
004506B1|.46               |inc esi
004506B2|.33D1               |xor edx,ecx
004506B4|.40               |inc eax
004506B5|.C1E3 08            |shl ebx,8
004506B8|.66:8B9497 50080000 |mov dx,word ptr ds:
004506C0|.66:33D3            |xor dx,bx
004506C3|.3B45 10            |cmp eax,dword ptr ss:
004506C6|.8BDA               |mov ebx,edx
004506C8|.^ 72 DD            \jb short 修改图标.004506A7
004506CA|> \8BC3               mov eax,ebx                         ;在这里打补丁
004506CC|.5F               pop edi
004506CD|.5E               pop esi
004506CE|.5B               pop ebx
004506CF|.5D               pop ebp
004506D0\.C3               retn
————————————————————————————————————

通过观察代码我们发现和第一处校验的模式是一样的,直接F4到这里004506CA,观察寄存器的值
========================
EAX 000A1400
ECX 00000000
EDX 0000CD79
EBX 0000CD79
ESP 0012F1A4
EBP 0012F1B0
========================

我们找一个零区来打补丁。
0054A8FD    0000               add byte ptr ds:,al   ;零区


===============补丁代码==============
mov edx,6770
mov ebx,edx
mov eax,ebx
pop edi
pop esi
pop ebx
jmp 004506CF
=====================================

=====================================================================================
004506CA|> \8BC3               mov eax,ebx                         ;在这里打补丁
004506CC|.5F               pop edi
004506CD|.5E               pop esi
004506CE|.5B               pop ebx
004506CF|.5D               pop ebp
004506D0\.C3               retn

修改为:
004506CA   /E9 2EA20F00          jmp 修改图标.0054A8FD               ; 修改为
004506CF   |5D                   pop ebp
004506D0   |C3                   retn
=====================================================================================


代码修改完毕,我们来保存一下。复制所有修改。保存为“修改图标-DIY.exe”关闭Ollydbg。

运行 修改图标-DIY.exe ,再次出现那个该死的提示了。郁闷……


我们用Ollydbg载入“修改图标-DIY.exe”


命令行里面输入
bp 004125F2 (错误提示的地方)


中断后,我们继续F8走,我们发现,
00412604   /74 44                je short 修改图标.0041264A            ; 这里跳转实现,跳过了错误提示

看来后面还有校验呀。


命令行里面输入
bp 004506CA (这里是我们第二次打补丁的地方)

我们继续F9运行,程序中断在补丁代码处。一路F8,来到这里:
00413A78      81FF 1B1A0000      cmp edi,1A1B                        ;我们发现EDI=6770,这里是判断EDI是否等于1A1B
00413A7E      75 0E            jnz short 修改图标.00413A8E
00413A80    B0 01                mov al,1
00413A82    8B55 CC            mov edx,dword ptr ss:
00413A85    64:8915 00000000   mov dword ptr fs:,edx
00413A8C    EB 0C                jmp short 修改图标.00413A9A
00413A8E    33C0               xor eax,eax
00413A90    8B55 CC            mov edx,dword ptr ss:
00413A93    64:8915 00000000   mov dword ptr fs:,edx
00413A9A    5F                   pop edi
00413A9B    5E                   pop esi
00413A9C    5B                   pop ebx
00413A9D    8BE5               mov esp,ebp
00413A9F    5D                   pop ebp
00413AA0    C3                   retn

================================================================

通过上面的分析,我们该找的给edi赋值的地方。向上看汇编代码。发现:
00413A3F   .E8 40CC0300      call 修改图标.00450684
00413A44   .83C4 0C            add esp,0C
00413A47   .0FB7F8             movzx edi,ax                        ;EAX=EDX=6770,应该在此打补丁,是他们的值为1A1B
00413A4A   .56               push esi                           
00413A4B   .E8 002B1100      call 修改图标.00526550            

找零区
0054A912    0000               add byte ptr ds:,al            ;零区

===============补丁代码==============
add    esp,0C
mov    eax,1A1B
mov    edx,eax
movzxedi,ax
jmp    00413A4A
=====================================


————————————————————————————————————
00413A3F    E8 40CC0300          call 修改图标.00450684
00413A44    83C4 0C            add esp,0C
00413A47    0FB7F8               movzx edi,ax                        ; EAX=EDX=6770,应该在此打补丁,是他们的值为1A1B
00413A4A    56                   push esi
00413A4B    E8 002B1100          call 修改图标.00526550
————————————————————————————————————

修改为:

00413A3F    E8 40CC0300          call 修改图标.00450684
00413A44    E9 C96E1300          jmp 修改图标.0054A912
00413A49    90                   nop
00413A4A    56                   push esi
00413A4B    E8 002B1100          call 修改图标.00526550
————————————————————————————————————

代码修改完毕,我们来保存一下。复制所有修改。保存为“修改图标-DIY-1.exe”关闭Ollydbg。

运行 修改图标-DIY-1.exe ,再次出现那个该死的提示了。我要疯了,这个程序……,同时我又一次从内心里对作者的编程功底和加密强度给

予了非常高的肯定。









再用Ollydbg载入“修改图标-DIY-1.exe”

在命令行输入
bp 004506CA (这里是我们第二次打补丁的地方)
bp 00413A44 (监视程序打过补丁后,又做了什么)


F9运行程序,中断在我们第二次打补丁的地方。F8单步走。
004506CA   /E9 2EA20F00          jmp 修改图标.0054A8FD
004506CF   |5D                   pop ebp
004506D0   |C3                   retn
————————————————————————————————————

当程序走到004126D4时,出现错误提示了。
004126A6    E8 F9130000          call 修改图标.00413AA4
004126AB    59                   pop ecx
004126AC    3D 3EED0000          cmp eax,0ED3E
004126B1    74 44                je short 修改图标.004126F7
004126B3    66:C785 A0FEFFFF 080>mov word ptr ss:,308
004126BC    BA AEEC5400          mov edx,修改图标.0054ECAE
004126C1    8D85 C0FEFFFF      lea eax,dword ptr ss:
004126C7    E8 A0301200          call 修改图标.0053576C
004126CC    FF85 ACFEFFFF      inc dword ptr ss:
004126D2    8B00               mov eax,dword ptr ds:
004126D4    E8 5BA20D00          call 修改图标.004EC934                  ; 这里出现错误提示
————————————————————————————————————

我们向上看代码发现,当004126AC 这里的EAX==ED3E的时候,这个跳转才能实现。如果不跳就出错。
004126A6    E8 F9130000          call 修改图标.00413AA4
004126AC    3D 3EED0000          cmp eax,0ED3E
004126B1    74 44                je short 修改图标.004126F7

我们在004126A6 下断点。重新来过。中断后在这里004126A6后,我们F8,中断在我们第二次打补丁的地方。F8单步走。
004506CA   /E9 2EA20F00          jmp 修改图标.0054A8FD
004506CF   |5D                   pop ebp
004506D0   |C3                   retn
————————————————————————————————————
当程序走到00413B84的时候,我们看eax的值是6770,edx的值是6770
00413B7C    E8 03CB0300          call 修改图标.00450684
00413B81    83C4 0C            add esp,0C
00413B84    0FB7F8               movzx edi,ax                        ; 这里大家很熟悉吧
00413B87    56                   push esi
00413B88    E8 C3291100          call 修改图标.00526550
————————————————————————————————————

通过上面的分析,我们该找的给edi赋值的地方。向上看汇编代码。发现:
EAX==EDX==6770,应该在此打补丁,让他们的值为,0ED3E


            

找零区
0054A928    0000               add byte ptr ds:,al            ;零区

===============补丁代码==============
add    esp,0C
mov    eax,0ED3E
mov    edx,eax
movzxedi,ax
jmp    00413B87
=====================================


————————————————————————————————————
00413B81    83C4 0C            add esp,0C
00413B84    0FB7F8               movzx edi,ax                        ; 这里大家很熟悉吧
00413B87    56                   push esi

修改为:
00413B81   /E9 A26D1300          jmp 修改图标.0054A928
00413B86   |90                   nop
00413B87   |56                   push esi
————————————————————————————————————


代码修改完毕,我们来保存一下。复制所有修改。保存为“修改图标-DIY-2.exe”关闭Ollydbg。

运行 修改图标-DIY-2.exe ,oh my god! 终于看到我们熟悉的界面了。程序运行了。我们试录一个视频。看看你。哇!果然变成了修改的图标

了。真高兴。呵呵。山重水复疑无路,柳暗花明又一村!


修改了这么多。我还想要在山寨一下,现在不都是流行山寨版本的吗!

我们知道,在录像播放的时候有一个 控制窗体,我们在控制窗体上面做点手脚吧!
把自己的名字写上去。让每个看视频的人都能看见。



说干就干

先吧Play.dat修改为Play.exe,用Restorator载入Play.exe 点开rcdate前面的“+”在这个'TCONTROLFORM'资源里面,我们看见了“控制”这

个就是在播放视频时候的控制窗体的标题。我们按键盘上面的F6,修改成“看雪论坛专用录像工具”保存。

再把Play.exe 修改为 Play.dat

好了,测试一下,perfect!自我感觉很好。

就说到这里吧。发个最终效果图给大家




--------------------------------------------------------------------------------
【经验总结】
处理自校验的地方值得大家学习一下,尤其是第二次修改的那个自校验,我们修改成固定的值了。但是后面还有对这个值的
多次校验。需要我们每次模拟正确的值来打补丁。其他的没什么技术含量了。主要是定位我们要修改的内容在那个文件。

--------------------------------------------------------------------------------
【版权声明】: 看雪论坛首发,转载请注明作者并保持文章的完整, 谢谢!


                                                       2009年08月06日 19:56:24

gy10000 发表于 2009-8-6 22:12

好多字噢。坐个沙发。西西

jjjjaaanne 发表于 2009-8-7 00:29

看不明白

pjzlq 发表于 2009-8-7 17:20

学习了。。

荳荳 发表于 2009-8-15 17:23

软件呢?????怎么没有啊

goujia808 发表于 2010-5-8 19:26

xuexile `

ZHANGLEI1989 发表于 2010-5-8 21:42

好多ZZ啊

meakhella 发表于 2010-8-21 18:40

学习了

霜之哀伤 发表于 2010-8-21 18:46

好多文字啊,慢慢看了。
页: [1]
查看完整版本: DIY个人专版屏幕录像大师