屏幕录像专家不能全屏可以录全屏的CF吗?

【分享】屏幕录像编辑专家破解记(一+二+三) [文字模式]
- 看雪安全论坛
查看完整版本 :
月清晖[文章标题] 屏幕录像编辑专家试用版破解记
[作者声明] 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
[软件名称] 屏幕录像编辑专家 v
[软件大小] ***程序为3.02KB
主程序为1.60MB
[加壳方式] 无壳
[编写语言] 程序编写语言为Borland C++ 1999
[调试环境] Windows XP SP3
[使用工具] OllyICE;DeDe
[软件介绍]
《屏幕录像编辑专家》需要和《屏幕录像专家》配合使用,屏幕录像编辑专家》(简称 编辑专家)是一款专业的屏幕录像(教程、课件)编辑制作工具。使用它可以轻松地对屏幕录像专家录制得到文件进行各种编辑,比如配字幕、小范围配音、删除帧、插入帧、延长帧、在帧上画标注以及各种图形和文字、在帧上实现图形渐变动画、在帧上放置按钮进行交互等,还可以使用项目对多个节进行组织制作完整的教程。支持输出EXE自播放动画、FLAS***、ASF动画、***I动画。使用编辑专家可以使你得到更加专业的作品。
试用版功能限制:
1.编辑的每一节都不能超过1000帧
2.项目中包含的节数不能超过3节
3.编辑和生成的帧图像上有“屏幕录像编辑专家 试用版”字样
[破解过程]
一、解除主程序文件检验
用OD加载主程序,下断点
BP CreateFileA
F9运行,共二下,看堆栈
1. 0012FA34
/CALL 到 CreateFileA 来自 编辑专家.004E70CE
2. 0012FA38
|FileName = &C:\Documents and Settings\Administrator\&,D7,&烂?{app}\编?,AD,&&,D7,&&,A8,&家.exe&
3. 0012FA3C
|Access = GENERIC_READ
4. 0012FA40
|ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
5. 0012FA44
|pSecurity = NULL
6. 0012FA48
|Mode = OPEN_EXISTING
7. 0012FA4C
|Attributes = NORMAL
8. 0012FA50
\hTemplateFile = NULL
9. 0012FA54
10. 0012FA58
11. 0012FA5C
返回到 编辑专家.004DBCE6 来自 编辑专家.004E7098
12. 0012FA60
指向下一个 SEH 记录的指针
13. 0012FA64
SE处理程序
14. 0012FA68
15. 0012FA6C
16. 0012FA70
17. 0012FA74
18. 0012FA78
OFFSET hhctrl.#12
19. 0012FA7C
20. 0012FA80
21. 0012FA84
22. 0012FA88
23. 0012FA8C
返回到 编辑专家.0042447A 来自 编辑专家.004DBC80
&======友好显示,看此处
24. 0012FA90
A1 18864D00
EAX, DWORD PTR [4D8618]
E8 06780B00
3. 0042447A
//返回到此地
4. 0042447C
DWORD PTR [EBP-14]
5. 0042447F
EAX, DWORD PTR [EBP-4]
E8 2C7C0D00
8. 0042448C
9. 0042448E
E8 E5750B00
E8 3BB10C00
13. 0042449A
14. 0042449C
15. 0042449E
E8 D5750B00
EDI, DWORD PTR [EAX]
20. 004244AB
DWORD PTR [EDI+4]
21. 004244AE
E8 C3750B00
EDX, DWORD PTR [EBP+8]
26. 004244BA
27. 004244BB
E8 D48B0100
&=====关键CALL,F7进入
E8 40AF0C00
32. 004244CC
33. 004244CD
34. 004244CF
DWORD PTR [EBP-C], ESI
6. 0043D09A
ESI, DWORD PTR [EBP+C]
7. 0043D09D
EDI, DWORD PTR [EBP+8]
E8 272F0000
12. 0043D0AD
EAX, DWORD PTR [EBP+10]
SHORT 0043D0DA
17. 0043D0BA
18. 0043D0BD
19. 0043D0BF
CL, BYTE PTR [ESI]
66:8B9497 CC0&|MOV
DX, WORD PTR [EDI+EDX*4+5CC]
EAX, DWORD PTR [EBP+10]
29. 0043D0DA
此处下断点,F9运行
30. 0043D0DD
DWORD PTR [EDI+9D8], EAX
在43D0DA处下断点,F9运行,然后我们看一下寄存器情况:
&=====EBX=0A917 这个就是检验码
5. ESP 0012FA74
6. EBP 0012FA80
8. EDI 00B32640
9. EIP 0043D0DA 编辑专家.0043D0DA
因此,检验解除:
EAX, DWORD PTR [EBP+10]
BB 17A90000
EBX, 0A917
OD右键选择“复制到可执行文件”
二、去掉恼人的NAG:试用版说明
因为是Borland C++ 1999编写的程序,那我们直接用DEDE来进行反编译
DEDE加载主程序,转储完成后,点“过程”
在左边找到模块名:TMainForm,然后再双击“FromShow”(呵呵,为什么双击这个,思考一下哦)
1. 0041BA58
2. 0041BA59
3. 0041BA5B
4. 0041BA5E
5. 0041BA5F
6. 0041BA60
7. 0041BA62
esi, [ebp-$38]
8. 0041BA65
B8BC8A5100
eax, $00518ABC
10. 0041BA6A
E8D9480D00
11. * Reference to control Image1 : TImage
13. 0041BA6F
8B83E4030000
eax, [ebx+$03E4]
14. * Reference to: extctrls.TImage.GetCanvas(TImage):TC
16. 0041BA75
E8C63A0900
17. 0041BA7A
18. 0041BA7C
19. * Reference to : TMainForm.ReDraw()
21. 0041BA7E
E805D0FFFF
22. 0041BA83
edx, [$0053EE54]
23. 0041BA89
eax, [edx]
24. 0041BA8B
edx, [eax]
25. 0041BA8D
FF92D8000000
dword ptr [edx+$00D8]
26. 0041BA93
word ptr [esi+$10], $0008
27. 0041BA99
eax, [ebp-$04]
29. 0041BA9C
E8FF5FFEFF
30. 0041BAA1
31. 0041BAA3
dword ptr [esi+$1C]
32. 0041BAA6
33. * Reference to: controls.TControl.GetText(TControl):TC
35. 0041BAA8
E887F60900
36. 0041BAAD
edx, [ebp-$04]
37. 0041BAB0
eax, [ebp-$0C]
38. 0041BAB3
40. 0041BAB4
E8E75FFEFF
41. 0041BAB9
42. 0041BABA
dword ptr [esi+$1C]
43. 0041BABD
44. 0041BAC2
eax, [ebp-$08]
46. 0041BAC5
E86A040E00
47. 0041BACA
dword ptr [esi+$1C]
48. 0041BACD
edx, [ebp-$08]
49. 0041BAD0
50. 0041BAD1
52. 0041BAD2
53. 0041BAD7
edx, [ebp-$0C]
54. 0041BADA
eax, [ebp-$14]
55. 0041BADD
57. 0041BADE
E8BD5FFEFF
58. 0041BAE3
59. 0041BAE4
dword ptr [esi+$1C]
60. * Possible String Reference to: '试用版'
62. 0041BAE7
63. 0041BAEC
eax, [ebp-$10]
65. 0041BAEF
66. 0041BAF4
dword ptr [esi+$1C]
67. 0041BAF7
edx, [ebp-$10]
68. 0041BAFA
69. 0041BAFB
71. 0041BAFC
E80F060E00
72. 0041BB01
edx, [ebp-$14]
73. 0041BB04
74. 0041BB06
edx, [edx]
呵呵,一大堆代码!!无用,开刀
1. 0041BA58
2. 0041BA59
直接改为:
1. 0041BA58
OD右键选择“复制到可执行文件”
至此,恼人的NAG试用版信息没有了。
三、解除功能限制
1.编辑的每一节都不能超过1000帧
2.项目中包含的节数不能超过3节
OD加载经上述修改过的主程序
& $ /EB 10
10. 0040100A
11. 0040100B
12. 0040100C
13. 0040100D
14. 0040100E
. |E4155100
OFFSET 编辑专家.___CPPdebugHook
& \A1 D7155100
EAX, DWORD PTR [5115D7]
现在用OD的老罗插件查找字符串 Find ASCII
1、试用版项目中节数不能超过3个,当前项目已超过,软件将被关闭
2、当前项目中有节总帧数超过限制(1000帧),软件将被关闭
3、试用版限制每节的总帧数不能超过1000帧
4、导入后总帧数将超过范围,不能导入
共有下面几处需要修改:
1. 0042822A
E8 F548FEFF
2. 0042822F
EAX, DWORD PTR [EAX+60]
3D E8030000
&===3E8H=1000
8. 004282AE
66:C745 A8 BC&|MOV
WORD PTR [EBP-58], 0BC
EAX, DWORD PTR [EBP-44]
10. 0042DAC6
0395 90FEFFFF ADD
EDX, DWORD PTR [EBP-170]
11. 0042DACC
81FA FFFF0000 CMP
EDX, 0FFFF
12. 0042DAD2
0F8C B0000000 JL
13. 0042DAD8
66:C785 CCFEF&MOV
WORD PTR [EBP-134], 1A0
14. 0042DAE1
15. 0042DB97
81FA E8030000 CMP
16. 0042DB9D
17. 0042DBA3
66:C785 CCFEF&MOV
WORD PTR [EBP-134], 1AC
18. 0042DBAC
8D85 30FFFFFF LEA
EAX, DWORD PTR [EBP-D0]
19. 0042DBB2
E8 E93EFDFF
20. 0042DBB7
21. 0042DBB8
FF85 D8FEFFFF INC
DWORD PTR [EBP-128]
22. 0042DBBE
BA AE295100
EDX, 005129AE
23. 0042DBC3
8D85 34FFFFFF LEA
EAX, DWORD PTR [EBP-CC]
24. 0042DBC9
E8 66E30C00
25. 0042DBCE
26. 0042DBCF
FF85 D8FEFFFF INC
DWORD PTR [EBP-128]
27. 0042DBD5
&==立即数:试用版限制每节的总帧数不能超过1000帧
28. 0042DBDA
8D85 38FFFFFF LEA
EAX, DWORD PTR [EBP-C8]
29. 0042DBE0
E8 4FE30C00
81FA FFFF0000 CMP
EDX, 0FFFF
0F8C 9A000000 JL
32. 0042E43D
66:C785 CCFEF&MOV
WORD PTR [EBP-134], 254
BA CF295100
EDX, 005129CF
&===005129立即数:导入后总帧数将超过范围,不能导入.
34. 0042E4ED
81F9 E8030000 CMP
0F8E FC000000 JLE
66:C785 CCFEF&MOV
WORD PTR [EBP-134], 260
8D85 E8FEFFFF LEA
EAX, DWORD PTR [EBP-118]
E8 9335FDFF
39. 0042E50D
40. 0042E50E
FF85 D8FEFFFF INC
DWORD PTR [EBP-128]
BA 142A5100
EDX, 00512A14
&====00512A14立即数:无法导入
8D85 ECFEFFFF LEA
EAX, DWORD PTR [EBP-114]
43. 0042E51F
E8 10DA0C00
FF85 D8FEFFFF INC
DWORD PTR [EBP-128]
46. 0042E52B
BA EF295100
EDX, 005129EF
&======005129立即数:试用版限制每节的总帧数不能超过1000帧.,无法导入
E8 4EC6FDFF
50. 004304DA
51. 004304DC
66:C746 10 08&MOV
WORD PTR [ESI+10], 8
BA 192B5100
EDX, 00512B19
&===00512B19立即数:试用版项目中节数不能超过3个
53. 0043051E
E8 01C6FDFF
3D F4010000
57. 0043052B
66:C746 10 14&MOV
WORD PTR [ESI+10], 14
BA 352B5100
EDX, 00512B35
&====00512B35立即数:节数已经达到限制,无法再增加
59. 00430A15
E8 9EB60C00
60. 00430A1A
81BD D0FEFFFF&CMP
DWORD PTR [EBP-130], 0FFFF
61. 00430A24
SHORT 00430AA1
62. 00430A26
66:C746 10 EC&MOV
WORD PTR [ESI+10], 0EC
63. 00430A2C
BA CE2B5100
EDX, 00512BCE
&=====00512BCE立即数:总帧数超过范围,无法使用
64. 00430AA1
|& \81BD D0FEFFFF&CMP
DWORD PTR [EBP-130], 3E8
65. 00430AAB
0F8E C2000000 JLE
66. 00430AB1
66:C746 10 F8&MOV
WORD PTR [ESI+10], 0F8
67. 00430AB7
EAX, DWORD PTR [EBP-64]
68. 00430ABA
E8 E10FFDFF
69. 00430ABF
70. 00430AC0
DWORD PTR [ESI+1C]
71. 00430AC3
BA 0B2C5100
EDX, 00512C0B
&===00512C0B立即数:此文件总帧数超过限制,无法继续
E8 EDAE0C00
73. 004311CB
81BD D0FEFFFF&CMP
DWORD PTR [EBP-130], 0FFFF
75. 004311DB
66:C746 10 7C&MOV
WORD PTR [ESI+10], 17C
BA 472C5100
EDX, 00512C47
&==00512C47立即数:总帧数超过范围,无法使用
77. 0043125C
|& \81BD D0FEFFFF&CMP
DWORD PTR [EBP-130], 3E8
0F8E D7000000 JLE
79. 0043126C
66:C746 10 88&MOV
WORD PTR [ESI+10], 188
8D85 30FFFFFF LEA
EAX, DWORD PTR [EBP-D0]
E8 2308FDFF
82. 0043127D
83. 0043127E
DWORD PTR [ESI+1C]
BA 842C5100
EDX, 00512C84
&===00512C84 立即数:此文件总帧数超过限制,无法继续
EDX, DWORD PTR [ECX+60]
86. 0043751C
81FA FFFF0000 CMP
EDX, 0FFFF
66:C745 DC 08&MOV
WORD PTR [EBP-24], 8
89. 0043752A
BA 2A315100
EDX, 0051312A
&====0051312A立即数:延长后总帧数将超过范围,不能延长
ECX, DWORD PTR [EAX+60]
81F9 E8030000 CMP
92. 0043757C
66:C745 DC 14&MOV
WORD PTR [EBP-24], 14
EAX, DWORD PTR [EBP-10]
95. 0043758B
E8 10A5FCFF
DWORD PTR [EBP-18]
BA 6F315100
EDX, 0051316F
&===0051316F立即数:无法延长
99. 0043796B
E8 B451FDFF
SHORT 004379BE
66:C785 54FFF&MOV
WORD PTR [EBP-AC], 8
104. 0043797F
BA B4315100
&=====试用版项目中节数不能超过3个
E8 5A51FDFF
106. 004379CA
107. 004379CB
3D F4010000
SHORT 00437A1A
66:C785 54FFF&MOV
WORD PTR [EBP-AC], 14
110. 004379DB
BA D0315100
&=====节数已经达到限制,无法再增加
EAX, DWORD PTR [EBP-8]
四、解除水印 将是本破文的重点
第一处水印:项目-添加节到项目后产生水印
用OD加载上述修改后的主程序
F9,唤出主程序,点项目-添加节到项目,然后选择好目标文件,不要按确定。
回到OD,下断点:
BP ExtTextOutA
再回到程序窗口,点确定,即被OD断下来
1. 77EFD3FA &
//断在此处
2. 77EFD3FC
3. 77EFD3FD
取消断点,看堆栈窗口:
1. 0012ED30
/CALL 到 ExtTextOutA 来自 编辑专家.
//先返回(说明1)
2. 0012ED34
|hDC = E4010EAF
3. 0012ED38
|X = 16A (362.)
4. 0012ED3C
|Y = 16C (364.)
5. 0012ED40
|Options = 0
6. 0012ED44
|pRect = NULL
7. 0012ED48
|String = &屏?,BB,&录像编?,AD,&&,D7,&&,A8,&家 ?,B4,&&,D7,&&,A2,&&,B2,&?
// 这就是水印的内容
8. 0012ED4C
|StringSize = 17 (23.)
9. 0012ED50
\pSpacing = NULL
10. 0012ED54
11. 0012ED58
12. 0012ED5C
13. 0012ED60
14. 0012ED64
15. 0012ED68
返回到 编辑专家. 来自 编辑专家.004FBF14
//友好提示 (说明2)
16. 0012ED6C
看到堆栈情况后,我们先来到返回到,然后在下断点,F9运行,再看寄存器
1. 004987DC
E8 A3530500
|pRect = NULL
EAX, DWORD PTR [EBX+54] |
EAX, DWORD PTR [EBP-4] |
7. 004987EB
8. 004987EC
9. 004987ED
EAX, DWORD PTR [EBX+4] |
E8 E87A0700
&JMP.&GDI32.ExtTextOutA& \ExtTextOutA
//返回在此处。
1. EAX 00BBB820
2. ECX 00498B3E 编辑专家.00498B3E
3. EDX 0000000B
4. EBX 00BA8F7C
5. ESP 0012ED4C
//此处右键数据窗口中跟随
6. EBP 0012ED64
7. ESI 00BBB820
8. EDI 0000016A
1. 数据窗口:
2. 0012ED4C
17 00 00 00 00 00 00 00 A4 ED 12 00 84 B8 B9 00
.......ろ .??
3. 0012ED5C
44 8F BA 00 6C 01 00 00 7C F8 12 00 28 90 40 00
D?.l ..|?.(?.
4. 0012ED6C
20 B8 BB 00 03 00 00 00 A8 F8 12 00 00 28 B3 00
富. ...? ..(?
5. 0012ED7C
C6 C1 C4 BB C2 BC CF F1 B1 E0 BC AD D7 A8 BC D2
屏幕录像编辑专家
6. 0012ED8C
20 CE B4 D7 A2 B2 E1 00 E0 F4 12 00 29 BA F3 72
未注册.圄 .)后r
7. 0012ED9C
00 FE F4 72 00 00 00 00 D8 03 7F 00 A6 02 07 00
.?r....?.? .
8. 0012EDAC
DC ED 12 00 00 00 00 00 F0 07 15 00 50 EE 12 00
茼 .....? .P?.
原来水印指针指向的是:12ED7C
既然知道了水印内容就是12ED7C内存里的内容,那我们继续返回
取消断点,按ctrl+g
409028,返回:
然后在00408F09下断点,再重新载入,边走边看寄存器中的12ED7C指针何时出现。
1. 00408F09
E8 72B2FFFF
2. 00408F0E
3. 00408F11
4. 00408F12
BE 961A5100
ESI, 00511A96
//赋值ESI=00511A96
右键数据窗口中跟随-立即数
5. 00408F17
8DBD 00F5FFFF LEA
EDI, DWORD PTR [EBP-B00]
6. 00408F1D
B9 0A000000
7. 00408F22
MOVS DWORD PTR ES:[EDI], DWORD P&
8. 00408F24
9. 00408F25
66:C785 94FEF&MOV
WORD PTR [EBP-16C], 8
10. 00408F2E
11. 00408F30
E8 4F420900
12. 00408F35
EAX, DWORD PTR [EAX+14]
13. 00408F38
14. 00408F3A
E8 C1EF0800
15. 00408F3F
8D8D 00F5FFFF LEA
ECX, DWORD PTR [EBP-B00]
16. 00408F45
&=====在此处寄存器窗口中ECX=12ED7C,跟随到数据窗口中未出现水印内容。
17. 00408F46
E8 F9FD0500
&=====关键进入
18. 00408F4B
19. 00408F4C
&=====在此处寄存器窗口中ECX=12ED7C,跟随到数据窗口中出现了水印内容。
20. 00408F4E
21. 00408F53
EAX, DWORD PTR [EAX+C]
22. 00408F56
23. 00408F5B
E8 54E90800
24. 00408F60
8D85 43FEFFFF LEA
EAX, DWORD PTR [EBP-1BD]
25. 00408F66
26. 00408F6B
DL, BYTE PTR [EAX]
27. 00408F6D
28. 00408F6F
29. 00408F70
E8 0F420900
30. 00408F75
EAX, DWORD PTR [EAX+C]
31. 00408F78
32. 00408F79
E8 62E90800
33. 00408F7E
66:C785 94FEF&MOV
WORD PTR [EBP-16C], 14C
34. 00408F87
BA B91C5100
EDX, 00511CB9
ASCII &宋体&
35. 00408F8C
EAX, DWORD PTR [EBP-78]
36. 00408F8F
E8 A02F0F00
37. 00408F94
FF85 A0FEFFFF INC
DWORD PTR [EBP-160]
38. 00408F9A
ECX, DWORD PTR [EAX]
39. 00408F9C
40. 00408F9E
41. 00408F9F
E8 E0410900
42. 00408FA4
EAX, DWORD PTR [EAX+C]
43. 00408FA7
44. 00408FA8
E8 8FE80800
45. 00408FAD
FF8D A0FEFFFF DEC
DWORD PTR [EBP-160]
46. 00408FB3
EAX, DWORD PTR [EBP-78]
47. 00408FB6
48. 00408FBB
E8 F8300F00
49. 00408FC0
50. 00408FC2
E8 BD410900
51. 00408FC7
EAX, DWORD PTR [EAX+C]
52. 00408FCA
BA FF000000
53. 00408FCF
E8 40E60800
54. 00408FD4
66:C785 94FEF&MOV
WORD PTR [EBP-16C], 158
55. 00408FDD
8D95 00F5FFFF LEA
EDX, DWORD PTR [EBP-B00]
56. 00408FE3
EAX, DWORD PTR [EBP-7C]
57. 00408FE6
E8 492F0F00
58. 00408FEB
FF85 A0FEFFFF INC
DWORD PTR [EBP-160]
59. 00408FF1
ECX, DWORD PTR [EAX]
60. 00408FF3
61. 00408FF5
62. 00408FF6
EDX, DWORD PTR [EAX]
63. 00408FF8
DWORD PTR [EDX+20]
64. 00408FFB
65. 00408FFD
66. 00408FFF
EDX, DWORD PTR [EAX]
71. 0040900A
DWORD PTR [EDX+2C]
72. 0040900D
73. 0040900F
05 6AFFFFFF
77. 0040901A
78. 0040901C
E8 EC2E0F00
FF8D A0FEFFFF DEC
DWORD PTR [EBP-160]
//返回在此处,然后往上找
通过上述观察追踪,不难发现,
1. 00408F46
E8 F9FD0500
是关键代码
1. 00468D44
2. 00468D45
3. 00468D47
4. 00468D48
5. 00468D4A
EDX, DWORD PTR [EBP+8]
//EDX=12ED7C
6. 00468D4D
7. 00468D4F
//EAX=EAX+1(记数)
8. 00468D50
//ECX左移二位
9. 00468D53
10. 00468D54
11. 00468D56
12. 00468D57
//ECX=ECX-EBX
13. 00468D59
BYTE PTR [EDX], CL
//与否计算
14. 00468D5B
//EDX=EDX+1
15. 00468D5C
//EAX不等于28,则继续循环
16. 00468D5F
SHORT 00468D4D
17. 00468D61
18. 00468D62
19. 00468D63
原来在这儿程序往ecx中压入了数据。
因此,我们在这儿改为如下
1. 00468D54
3. 00468D54
1. 00408F12
BE 961A5100
ESI, 00511A96
//赋值ESI=00511A96
右键数据窗口中跟随-立即数
1. 00511A96
A2 A1 98 E3 96 EC 83 B9 F5 A0 80 95 E3 98 90 FA
2. 0 EE A8 CF B6 A2 ED
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1. 0 00 00 00 00 00 00 00
两处修改后,项目-添加节到项目后产生水印问题就解决了
屏幕录像编辑专家破解记(二)
呵呵,不好意思,该软件的破解费了好长时间,现在把整个过程写出来,回忆最痛苦了^_^
第二处水印 生成编辑专家格式EXE 播放时右下角出现红色的 “屏幕录像编辑专家 试用版” 字样
关于这个水样,开始时,我反复跟踪程序,没有任何线索,唯一给我的信息就是程序在生存编辑专家格式EXE时,曾读取了“play.dat”
因此就把重点放在该文件上,我们知道dat文件不是标准的格式文件,可这个文件居然可以用OD加载,呵呵,用OD载入该文件,然后搜索字串
哈哈,居然找到了字符串“屏幕录像编辑专家 试用版”双击该标签,返回到OD调试窗口:
E8 6E0B0200
66:C785 48FFF&MOV
WORD PTR [EBP-B8], 2C
3. 0040B8BF
BA A2194900
//选中这一行,右键在数据窗口中跟随-立即数
EAX, DWORD PTR [EBP-64]
E8 0C030700
6. 0040B8CC
FF85 54FFFFFF INC
DWORD PTR [EBP-AC]
数据窗口友好显示:
C6 C1 C4 BB C2 BC CF F1 B1 E0 BC AD D7 A8 BC D2
屏幕录像编辑专家
20 CA D4 D3 C3 B0 E6 00 00 CB CE CC E5 00 2F 00
试用版..宋体./.
那还等什么,干吧....
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................
00 00 00 00 00 00 00 00 00 CB CE CC E5 00 2F 00
.........宋体./.
然后选中所改的内容,按鼠标右键-选择“复制到可执行文件”,再按鼠标右键-选择“保存文件”
试一下,生成编辑专家格式EXE 看了一下,动画干净了。
第三处 生成录像专家格式EXE
播放时在屏幕中间有一处大大的“屏幕录像专家 未注册”字样
解决这一处,挺恼人的,也走了好多弯路,为些,还在论坛发起了贴子,研究主程序后,发现程序只是把play1.dat的代码复制到生成的exe中(大家可以去跟一下),知道了这一点,我就有了下面的解题。
在这儿我想我把整个解题过程详细的说一下:将是本文重点之一
既然生成的格式是EXE,我们为何不去看看这个生成的EXE文件呢?
好了,费话少说,OD开工:用OD加载生成的exe文件(录像专家格式EXE )
& $ /EB 10
10. 0040100A
11. 0040100B
12. 0040100C
13. 0040100D
14. 0040100E
. |B8434800
OFFSET 去掉延迟.___CPPdebugHook
& \A1 AB434800
EAX, DWORD PTR [4843AB]
然后下断点
BP ExtTextOutA
1. 77EFD3FA &
//断在此处
2. 77EFD3FC
3. 77EFD3FD
4. 77EFD3FF
呵呵,居然断了下来,那我们看看堆栈的信息:
/CALL 到 ExtTextOutA 来自 去掉延迟.
|hDC = 94010A1A
|X = 16A (362.)
4. 0012F4BC
|Y = 16C (364.)
|Options = 0
|pRect = NULL
|String = &屏?,BB,&录像&,D7,&&,A8,&家 ?,B4,&&,D7,&&,A2,&&,B2,&?
&====这就是水样
8. 0012F4CC
|StringSize = 13 (19.)
\pSpacing = NULL
去掉延迟.0048D65D
去掉延迟.00484A90
12. 0012F4DC
返回到 去掉延迟. 来自 去掉延迟.0046EE44
//在此处右键反汇编跟随
16. 0012F4EC
去掉延迟.0048D65D
我们在堆栈中知道
*这处水样 内存地址是00F701DC 这一点对初学者来讲,是何等的重要,不然你永远迷失在云雾里.......另外12F4E8这个地址也要记住*现在我们右键反汇编中跟随(或者CTRL+G:409694)
8B81 B8140000 MOV
EAX, DWORD PTR [ECX+14B8]
E8 E3B70100
3. 0040968D
4. 0040968E
5. 0040968F
E8 B0570600
DWORD PTR [EBP-74]
//光标停在此处
EAX, DWORD PTR [EBP-50]
8. 0040969A
9. 0040969F
现在重点看一下寄存器情况
1. EAX 94010A1A
2. ECX 00420BE2 去掉延迟.00420BE2
3. EDX 0000000B
4. EBX 00A1CCE8
7. ESI 00F701DC
//这不就是水样的内存地址,好,按鼠标右键-在数据窗口中跟随
8. EDI 0000016A
数据窗口:
1. 00F701DC
C6 C1 C4 BB C2 BC CF F1 D7 A8 BC D2 20 CE B4 D7
屏幕录像专家 未
2. 00F701EC
A2 B2 E1 00 20 02 49 00 AC 14 F7 00 44 12 00 00
呵呵,分析到这一步,我们可以确切的知道,我们已经来到了程序的领空
现在在 代码段找到段首,然后下断点
//在此处下断点,然后重来,然后F8慢慢跟踪,并注意寄存器窗口变化
81C4 18FAFFFF ADD
5. 0040806A
6. 0040806B
7. 0040806C
8. 0040806E
DWORD PTR [EBP-4], EDX
8985 6CFFFFFF MOV
DWORD PTR [EBP-94], EAX
B8 F4574800
11. 0040807C
E8 D3BF0500
8B95 6CFFFFFF MOV
EDX, DWORD PTR [EBP-94]
14. 0040886C
15. 0040886D
E8 B2220000
&======走到此处,我们在寄存器窗口第一次看到了12F4E8 说明*
66:C745 80 68&MOV
WORD PTR [EBP-80], 68
有人说代码这么长,如何找呢
其实很简单
在408060处断下后,按F8跟踪,然后盯住寄存器窗口看,对初学者来讲,看什么呢?呵呵,还记得上面我说的一句话
在这儿把它复制过来再说一次:
*这处水样 内存地址是00F701DC 这一点对初学者来讲,是何等的重要,不然你永远迷失在云雾里.......另外12F4E8这个地址也要记住*呵呵,对了,就是看寄存器中何时出现 12F4E8
说明*,看寄存器窗口
2. ECX 7C80189C kernel32.7C80189C
3. EDX 00A12328
//第一次出现12F4E8 可以按鼠标右键在数据窗口中跟随 立即数
6. EBP 0012FAE4
7. ESI 00A1D800
8. EDI 0009EE04
9. EIP 0040886D 去掉延迟.0040886D
这样的话,我们就要对这个CALL重点关注了
E8 B2220000
1. 0040AB24
2. 0040AB25
3. 0040AB27
4. 0040AB28
5. 0040AB2A
EDX, DWORD PTR [EBP+C]
6. 0040AB2D
7. 0040AB2F
8. 0040AB30
9. 0040AB33
10. 0040AB34
&======记为A1
11. 0040AB36
12. 0040AB37
13. 0040AB39
BYTE PTR [EDX], CL
14. 0040AB3B
15. 0040AB3C
16. 0040AB3F
SHORT 0040AB2D
17. 0040AB41
18. 0040AB42
19. 0040AB43
呵呵,这段代码熟悉了吧,我们先放着,记为A1
因为在生成的exe文件中出现这段代码是从play1.dat中复制过来的,因此,接下去很简单,用OD打开play1.dat
然后CTRL+G
呵呵,动手吧,保存。
测试后发现水样字样还有,那我们继续修理
用OD载入生成的exe文件(录像专家格式EXE ),说实在的,到了这儿真的有点迷糊了,不知道从何下手,偶尔加载了一次未生成完毕的EXE文件
运行提示错误“文件格式无法识别,无法播放。有可能是文件损坏造成的,建议将此文件复制到屏幕录像专家的临时文件夹里,然后在屏幕录像专家主界面中打开看是否可以修复。”
那好,我们就从这儿着手
重新载入生成的exe文件(录像专家格式EXE ),查找字符串:文件格式无法识别,无法播放。有可能是文件损坏造成的,建议将此文件复制到屏幕录像专家的临时文件夹里,然后在屏幕录像专家主界面中打开看是否可以修复。
双击后来到调试窗口
1. 00406F35
2. 00406F3A
68 D1494800
ASCII &Play&
3. 00406F3F
4. 00406F44
5. 00406F46
E8 11A50300
6. 00406F4B
7. 00406F4C
E8 27C40700
&JMP.&USER32.MessageBoxA& \MessageBoxA
8. 00406F51
9. 00406F52
E8 41E80500
10. 00406F57
11. 00406F58
12. 00406F5A
E8 912F0600
13. 00406F5F
14. 00406F60
EDX, DWORD PTR [EBP-34]
15. 00406F63
DWORD PTR FS:[0], EDX
16. 00406F6A
E9 7B030000
17. 00406F6F
18. 00406F71
19. 00406F73
20. 00406F74
E8 8FED0500
21. 00406F79
22. 00406F7C
ECX, DWORD PTR [EBX+1440]
23. 00406F82
898B B8030000 MOV
DWORD PTR [EBX+3B8], ECX
24. 00406F88
25. 00406F89
E8 EEED0500
26. 00406F8E
27. 00406F8F
8983 BC030000 MOV
DWORD PTR [EBX+3BC], EAX
28. 00406F95
SHORT 00406FD4
29. 00406F97
DWORD PTR [EBX+380], 1
30. 00406FA1
EAX, DWORD PTR [EBX+1330]
31. 00406FA7
32. 00406FAA
EAX, DWORD PTR [EAX+EAX*4]
33. 00406FAD
34. 00406FAF
35. 00406FB1
36. 00406FB2
37. 00406FB3
E8 50ED0500
38. 00406FB8
39. 00406FBB
ECX, DWORD PTR [EBX+384]
40. 00406FC1
41. 00406FC2
EDX, DWORD PTR [EBX+1330]
42. 00406FC8
43. 00406FC9
44. 00406FCB
45. 00406FCC
E8 97EC0500
46. 00406FD1
47. 00406FD4
48. 00406FD5
E8 BEE70500
49. 00406FDA
50. 00406FDB
51. 00406FDD
DWORD PTR [EBX+330], EAX
52. 00406FE3
DWORD PTR [EBX+380], 0
53. 00406FEA
54. 00406FEC
EAX, DWORD PTR [EBX+1424]
55. 00406FF2
DWORD PTR [EAX], 0
56. 00406FF5
SHORT 0040700B
57. 00406FF7
DWORD PTR [EBX+330], 1
EDX, DWORD PTR [EAX]
DWORD PTR [EBX+334], EDX
SHORT 0040706F
61. 0040700B
DWORD PTR [EAX+4], 0
62. 0040700F
SHORT 0040706F
DWORD PTR [EBX+330], 2
64. 0040701B
ECX, DWORD PTR [EAX+4]
65. 0040701E
DWORD PTR [EBX+334], ECX
SHORT 0040706F
DWORD PTR [EBX+380], 1
68. 0040702D
SHORT 0040706F
69. 0040702F
DWORD PTR [EBX+1334], 0
DWORD PTR [EBX+330], 1
EAX, DWORD PTR [EBX+1334]
DWORD PTR [EBX+334], EAX
74. 0040704E
SHORT 0040706F
DWORD PTR [EBX+1338], 0
SHORT 0040706F
DWORD PTR [EBX+330], 2
EDX, DWORD PTR [EBX+1338]
DWORD PTR [EBX+334], EDX
80. 0040706F
DWORD PTR [EBX+330], 2
0F85 BC000000 JNZ
82. 0040707C
8B0D 50D64800 MOV
ECX, DWORD PTR [_PlayForm]
A1 246F4800
EAX, DWORD PTR [486F24]
E8 8E650000
86. 0040708E
A1 74D24800
EAX, DWORD PTR [48D274]
DWORD PTR [EAX], ESI
EDX, DWORD PTR [EBX+334]
91. 0040709F
DWORD PTR [ESI+2E4], EDX
EDX, DWORD PTR [EAX]
FF92 D8000000 CALL
DWORD PTR [EDX+D8]
94. 004070AD
8B0D 74D24800 MOV
ECX, DWORD PTR [48D274]
去掉延迟._MmForm
EAX, DWORD PTR [ECX]
80B8 E0020000&CMP
BYTE PTR [EAX+2E0], 0
97. 004070BC
98. 004070BE
E8 2B2E0600
103. 004070CA
ESI, DWORD PTR [EBX+338]
E8 2ACC0500
66:C745 DC 14&MOV
WORD PTR [EBP-24], 14
108. 004070DF
EAX, DWORD PTR [EBP-8]
E8 49C5FFFF
DWORD PTR [EBP-18]
111. 004070EA
8B0D 74D24800 MOV
ECX, DWORD PTR [48D274]
去掉延迟._MmForm
EAX, DWORD PTR [ECX]
8B80 D4020000 MOV
EAX, DWORD PTR [EAX+2D4]
115. 004070FA
116. 004070FF
EAX, DWORD PTR [EBP-8]
E8 ED010000
120. 0040710B
121. 0040710C
ECX, FFFFFFFF
122. 0040710F
SCAS BYTE PTR ES:[EDI]
128. 0040711C
129. 0040711E
MOVS DWORD PTR ES:[EDI], DWORD P&
133. 0040712A
EAX, DWORD PTR [EBP-8]
134. 0040712D
MOVS BYTE PTR ES:[EDI], BYTE PTR&
135. 0040712F
DWORD PTR [EBP-18]
E8 CC7D0600
139. 0040713A
140. 0040713C
DWORD PTR [EBX+1464], ECX
BYTE PTR [EBX+1368], 0
143. 0040714B
C683 1D150000&MOV
BYTE PTR [EBX+151D], 1
BYTE PTR [EBX+1369], 1
DWORD PTR [EBX+358], EAX
146. 0040715F
DWORD PTR [EBX+35C], EDX
898B 5C140000 MOV
DWORD PTR [EBX+145C], ECX
150. 0040716F
A1 CCF34400
EAX, DWORD PTR [44F3CC]
E8 FFA6FFFF
DWORD PTR [EBX+1468], EAX
153. 0040717F
A1 50ED4100
EAX, DWORD PTR [41ED50]
E8 B5F10100
156. 0040718B
DWORD PTR [EBX+147C], EAX
A1 ECFC4700
EAX, DWORD PTR [47FCEC]
E8 DB8D0700
160. 0040719D
DWORD PTR [EBX+14B4], EAX
A1 10EC4100
EAX, DWORD PTR [41EC10]
163. 004071AA
E8 55D70100
164. 004071AF
DWORD PTR [EBX+14B8], EAX
A1 10EC4100
EAX, DWORD PTR [41EC10]
167. 004071BC
E8 43D70100
DWORD PTR [EBX+14C0], EAX
A1 CCF34400
EAX, DWORD PTR [44F3CC]
171. 004071CE
E8 A5A6FFFF
DWORD PTR [EBX+14D0], EAX
174. 004071DB
ECX, DWORD PTR [EBX+378]
A1 F4F24400
EAX, DWORD PTR [44F2F4]
E8 97B20400
178. 004071ED
8983 CC140000 MOV
DWORD PTR [EBX+14CC], EAX
A1 20F14400
EAX, DWORD PTR [44F120]
181. 004071FA
182. 004071FF
DWORD PTR [EBX+350], EAX
185. 0040720C
186. 0040720E
BYTE PTR [ESI], DL
SHORT 0040720C
/EventName = NULL
193. 0040721B
|InitiallySignaled = FALSE
呵呵,***已经在阳光下了
看一下代码
//这个就是赋值,看数据窗口干掉
2. 0040720C
//改为mov dl,0
3. 0040720E
BYTE PTR [ESI], DL
SHORT 0040720C
好,分析到此地,这个水印问题基本上解决了:现在再次用OD打开play1.dat(为什么,请大家研究一下哦^_^)
CTRL+G 40720C
1. 0040720C
3. 0040720C
保存为文件
然后再次用OD打开,CTRL+G 407207
//这个就是赋值,右键在数据窗口跟随-立即数,然后干掉
2. 0040720C
数据窗口:
保存好以后,就搞定了生成录像专家格式EXE播放时的水印。
本文的另一重点,将在续篇中重点讲解 。回忆是痛苦的
屏幕录像编辑专家破解记(三)
记得在很多年以前破解网文快捕时,也经历了这样的折腾,网文快捕的暗桩也特别多,只是相对来讲要比这软件简单一些,更容易调试,而这软件,暗桩的解除可能对部分朋友来讲,无从着手,正因为是这样,因此,在写本篇时,我尽量来还原我解密时的思路。这可能对大家有益。另外,在撰写时,又重新经历一次破解,可能思路更清晰,解题的方法更慎密........
好了,接着上篇,我们继续来搞定lxe水印问题。
第三处水印
生成屏幕录像专家LXE 播放时有水印(动画中央有红色的大字)
此处的水印问题解决,前后共化去了三天的时间
从第二处水印解除中我们可以看到,解密方法是在两个DAT文件中(PLAY.DAT和PLAY1.DAT)这两个dat文件可以用OD打开。
但问题是***目录下还有二个主要的dat文件(bjlxe.dat和lxlxe.dat),其文件大小与(PLAY.DAT和PLAY1.DAT)相等。可遗憾的是这两个文件根本不是可执行文件。
因此解密到了这一步就觉得走入了迷路中了
之间,我也用Ultraedit打开,然后与(PLAY.DAT和PLAY1.DAT)相比,其结果是lxlxe.dat在十六进制下文件尾部有pmlxzjlxe,且长度与与play1.dat的长度一致;bjlxe.dat在十六进制下文件尾部有pmlxzjlxe,且长度与play.dat长度一致。
于是用添换法,自己生成二个长度相同的dat文件,结果运行问题一点都没有,只是水印依然存在。
这说明什么呢,说明这两个dat文件在生成lxe时没有多大的作用。试图打开这两个dat文件的方法可以放弃,因为一定有另一个解
一步步的分析,当时真的好像走入了迷宫中
偶尔,打开由作者提供的播放器,晕,在其***目录下有三个文件:bjp.exe、EXE2LXE.exe、play.exe
当时突然给我了一个思路,可能作者在播放时把水印字样加上去的,那样的话,问题可能就出在这个播放器中
有了这样的想法后,我们就用破解完的屏幕录像编辑专家生成一个以录像专家格式lxe的文件
用OD载入play.exe,
F9运行,唤出选择窗口,(现在不要点确定)
BP ExtTextOutA
然后回到主程序窗口选择好lxe文件,点确定,哈哈,断下来了,说明前面的分析有道理,问题症结就在此处
播放器是免费的,但并不是说这播放器作者不可以做手脚哦
1. 77EFD3FA &
//程序断在此处
2. 77EFD3FC
3. 77EFD3FD
看堆栈窗口:
/CALL 到 ExtTextOutA 来自 play.
|hDC = 440108FF
|X = 16A (362.)
4. 0012F4BC
|Y = 16C (364.)
|Options = 0
|pRect = NULL
|String = &屏?,BB,&录像&,D7,&&,A8,&家 ?,B4,&&,D7,&&,A2,&&,B2,&?
8. 0012F4CC
|StringSize = 13 (19.)
\pSpacing = NULL
play.004A6D19
play.0049BD42
12. 0012F4DC
返回到 play.00409E84 来自 play.
//友好显示,可以按右键反汇编跟随
F9第三下:
/CALL 到 ExtTextOutA 来自 play.
2. 0012F7FC
|hDC = 26010ADC
|X = 16A (362.)
|Y = 16C (364.)
|Options = 0
6. 0012F80C
|pRect = NULL
|String = &屏?,BB,&录像&,D7,&&,A8,&家 ?,B4,&&,D7,&&,A2,&&,B2,&?
|StringSize = 13 (19.)
\pSpacing = NULL
10. 0012F81C
14. 0012F82C
返回到 play.00405D22 来自 play.
//友好显示,可以按右键反汇编跟随
有了这样的分析,接下去的工作就简单了
第一个:CTRL+G 409E84
然后往上找到
1. 0040905C
2. 0040905D
E8 B2220000
&====关键CALL
66:C745 80 68&MOV
WORD PTR [EBP-80], 68:
进入F7(注意一下,如何找到这个CALL,可以参考一下我在第二处解决水印时的方法,在此处是一样的)
5. 0040B31A
EDX, DWORD PTR [EBP+C]
6. 0040B31D
7. 0040B31F
&===改为:MOV CL,0
BYTE PTR [EDX], CL
14. 0040B32B
15. 0040B32C
16. 0040B32F
SHORT 0040B31D
1. 00405CBD
DWORD PTR [EDI+4]
2. 00405CC0
80BB B0180000&CMP
BYTE PTR [EBX+18B0], 0
3. 00405CC7
SHORT 00405D34
&===解题方法,可以在此处JMP,但这并不是最佳方法
4. 00405CC9
66:C746 10 50&MOV
WORD PTR [ESI+10], 50
5. 00405CCF
BA 82B44900
6. 00405CD4
EAX, DWORD PTR [EBP-70]
7. 00405CD7
E8 AC080800
8. 00405CDC
DWORD PTR [ESI+1C]
9. 00405CDF
ECX, DWORD PTR [EAX]
10. 00405CE1
11. 00405CE2
8B83 BC180000 MOV
EAX, DWORD PTR [EBX+18BC]
12. 00405CE8
EDX, DWORD PTR [EAX]
13. 00405CEA
DWORD PTR [EDX+20]
14. 00405CED
15. 00405CEF
SHORT 00405CF4
16. 00405CF1
17. 00405CF4
18. 00405CF7
19. 00405CF8
8B83 BC180000 MOV
EAX, DWORD PTR [EBX+18BC]
20. 00405CFE
EDX, DWORD PTR [EAX]
21. 00405D00
DWORD PTR [EDX+2C]
22. 00405D03
23. 00405D05
SHORT 00405D0A
24. 00405D07
25. 00405D0A
05 6AFFFFFF
26. 00405D0F
27. 00405D10
8B83 BC180000 MOV
EAX, DWORD PTR [EBX+18BC]
28. 00405D16
E8 211E0300
29. 00405D1B
30. 00405D1C
31. 00405D1D
E8 5E080800
32. 00405D22
DWORD PTR [ESI+1C]
光标停在此处
33. 00405D25
EAX, DWORD PTR [EBP-70]
34. 00405D28
35. 00405D2D
E8 0E090800
36. 00405D32
SHORT 00405D91
37. 00405D34
66:C746 10 5C&MOV
WORD PTR [ESI+10], 5C
38. 00405D3A
BA C3B94900
1. 这一处我们可以这样在改
2. 00405CC7
SHORT 00405D34
4. 00405CC7
SHORT 00405D34
那最好的方法是什么呢
还记得我们在解决第二处水样时,找字符串吗?只是我们在此地要找到字符串时“无法识别,无法播放.”
OD载入,查找字符串:无法识别,无法播放
1. 0040748A
68 03BB4900
ASCII &Play&
2. 0040748F
68 E9BA4900
E8 FDE50400
5. 0040749B
6. 0040749C
&JMP.&USER32.MessageBoxA& \MessageBoxA
E8 192C0700
11. 004074AA
E8 65A10700
12. 004074AF
EDX, DWORD PTR [EBP-74]
DWORD PTR FS:[0], EDX
15. 004074BA
16. 004074BF
DWORD PTR [EBX+1840], 8
19. 004074CD
68 6ABB4900
ASCII &Play&
68 08BB4900
E8 BAE50400
23. 004074DE
24. 004074DF
E8 1E360900
&JMP.&USER32.MessageBoxA& \MessageBoxA
E8 D62B0700
27. 004074EA
28. 004074EB
29. 004074ED
E8 22A10700
EDX, DWORD PTR [EBP-74]
DWORD PTR FS:[0], EDX
33. 004074FD
38. 0040750C
39. 0040750F
ECX, DWORD PTR [EBX+1844]
898B BC070000 MOV
DWORD PTR [EBX+7BC], ECX
41. 0040751B
42. 0040751C
E8 D3320700
DWORD PTR [EBX+7C0], EAX
46. 0040752D
83BB 2C170000&CMP
DWORD PTR [EBX+172C], 8
49. 0040753B
68 D1BB4900
ASCII &Play&
68 6FBB4900
E8 4CE50400
53. 0040754C
54. 0040754D
E8 B0350900
&JMP.&USER32.MessageBoxA& \MessageBoxA
E8 682B0700
59. 0040755B
E8 B4A00700
EDX, DWORD PTR [EBP-74]
DWORD PTR FS:[0], EDX
63. 0040756B
E9 B6030000
DWORD PTR [EBX+784], 1
65. 0040757A
ECX, DWORD PTR [EBX+1734]
ECX, DWORD PTR [ECX+ECX*4]
70. 0040758A
71. 0040758B
72. 0040758C
E8 EF310700
EDX, DWORD PTR [EBX+788]
75. 0040759A
76. 0040759B
EAX, DWORD PTR [EBX+1734]
E8 FA300700
81. 004075AA
82. 004075AD
83. 004075AE
E8 0D2B0700
ECX, DWORD PTR [EBP-78]
ECX, DWORD PTR [EBP-7C]
87. 004075BA
88. 004075BC
66:C745 9C 98&MOV
WORD PTR [EBP-64], 98
BA D6BB4900
EDX, 0049BBD6
EAX, DWORD PTR [EBP-44]
91. 004075CA
E8 B9EF0700
92. 004075CF
DWORD PTR [EBP-58]
EAX, DWORD PTR [EAX]
DWORD PTR [EBP-58]
96. 004075DC
EAX, DWORD PTR [EBP-44]
97. 004075DF
E8 57F00700
100. 004075EB
E8 24A00700
ECX, DWORD PTR [EBP-74]
64:890D 00000&MOV
DWORD PTR FS:[0], ECX
104. 004075FB
DWORD PTR [EBX+734], EAX
DWORD PTR [EBX+784], 0
108. 0040760F
SHORT 0040764B
EAX, DWORD PTR [EBX+1828]
DWORD PTR [EAX], 0
111. 0040761A
112. 0040761C
DWORD PTR [EBX+734], 1
EDX, DWORD PTR [EAX]
DWORD PTR [EBX+738], EDX
115. 0040762E
DWORD PTR [EAX+4], 0
DWORD PTR [EBX+734], 2
ECX, DWORD PTR [EAX+4]
DWORD PTR [EBX+738], ECX
122. 0040764B
DWORD PTR [EBX+784], 1
DWORD PTR [EBX+1738], 0
125. 0040765B
126. 0040765D
DWORD PTR [EBX+734], 1
EAX, DWORD PTR [EBX+1738]
128. 0040766D
DWORD PTR [EBX+738], EAX
83BB 3C170000&CMP
DWORD PTR [EBX+173C], 0
131. 0040767C
132. 0040767E
DWORD PTR [EBX+734], 2
8B93 3C170000 MOV
EDX, DWORD PTR [EBX+173C]
134. 0040768E
DWORD PTR [EBX+738], EDX
DWORD PTR [EBX+734], 2
136. 0040769B
0F85 BC000000 JNZ
8B0D 0C6D4A00 MOV
ECX, DWORD PTR [_PlayForm]
A1 BCE34900
EAX, DWORD PTR [49E3BC]
140. 004076AE
E8 1D690000
A1 28694A00
EAX, DWORD PTR [4A6928]
143. 004076BA
DWORD PTR [EAX], ESI
144. 004076BC
145. 004076BE
EDX, DWORD PTR [EBX+738]
DWORD PTR [ESI+2E4], EDX
147. 004076CA
EDX, DWORD PTR [EAX]
148. 004076CC
FF92 D8000000 CALL
DWORD PTR [EDX+D8]
8B0D 28694A00 MOV
ECX, DWORD PTR [4A6928]
play._MmForm
EAX, DWORD PTR [ECX]
151. 004076DA
80B8 E0020000&CMP
BYTE PTR [EAX+2E0], 0
SHORT 004076EB
E8 2A9F0700
155. 004076EA
156. 004076EB
157. 004076ED
158. 004076EF
8DB3 3C070000 LEA
ESI, DWORD PTR [EBX+73C]
E8 4D0E0700
161. 004076FB
162. 004076FE
66:C745 9C A4&MOV
WORD PTR [EBP-64], 0A4
EAX, DWORD PTR [EBP-48]
E8 B0BFFFFF
165. 0040770C
DWORD PTR [EBP-58]
166. 0040770F
8B0D 28694A00 MOV
ECX, DWORD PTR [4A6928]
play._MmForm
EAX, DWORD PTR [ECX]
8B80 D4020000 MOV
EAX, DWORD PTR [EAX+2D4]
170. 0040771F
E8 9C820400
EAX, DWORD PTR [EBP-48]
173. 0040772C
174. 0040772E
ECX, FFFFFFFF
SCAS BYTE PTR ES:[EDI]
180. 0040773A
181. 0040773C
182. 0040773E
MOVS DWORD PTR ES:[EDI], DWORD P&
187. 0040774C
188. 0040774F
EAX, DWORD PTR [EBP-48]
MOVS BYTE PTR ES:[EDI], BYTE PTR&
DWORD PTR [EBP-58]
E8 E3EE0700
193. 0040775D
194. 0040775F
DWORD PTR [EBX+1868], ECX
C683 6C170000&MOV
BYTE PTR [EBX+176C], 0
BYTE PTR [EBX+1921], 1
C683 6D170000&MOV
BYTE PTR [EBX+176D], 1
200. 0040777E
DWORD PTR [EBX+75C], EAX
DWORD PTR [EBX+760], EDX
202. 0040778A
203. 0040778C
204. 0040778E
DWORD PTR [EBX+1860], ECX
A1 103A4600
EAX, DWORD PTR [463A10]
E8 2EA8FFFF
207. 0040779E
DWORD PTR [EBX+186C], EAX
A1 1C1A4300
EAX, DWORD PTR [431A1C]
210. 004077AB
E8 5C180300
DWORD PTR [EBX+1880], EAX
EAX, DWORD PTR [497428]
214. 004077BD
E8 F2FE0800
DWORD PTR [EBX+18B8], EAX
217. 004077CA
A1 DC184300
EAX, DWORD PTR [4318DC]
218. 004077CF
E8 FCFD0200
8983 BC180000 MOV
DWORD PTR [EBX+18BC], EAX
220. 004077DA
221. 004077DC
A1 DC184300
EAX, DWORD PTR [4318DC]
E8 EAFD0200
DWORD PTR [EBX+18C4], EAX
224. 004077EC
225. 004077EE
A1 103A4600
EAX, DWORD PTR [463A10]
E8 D4A7FFFF
DWORD PTR [EBX+18D4], EAX
228. 004077FE
8B8B 7C070000 MOV
ECX, DWORD PTR [EBX+77C]
EAX, DWORD PTR [463938]
232. 0040780D
E8 B6F20500
DWORD PTR [EBX+18D0], EAX
235. 0040781A
EAX, DWORD PTR [463764]
236. 0040781F
E8 AC020000
DWORD PTR [EBX+754], EAX
238. 0040782A
239. 0040782C
BE 82B44900
&======数据窗口,改!!
&======明白了不,改为mov dl,0
BYTE PTR [ESI], DL
246. 0040783C
247. 0040783E
8D85 FAFEFFFF LEA
EAX, DWORD PTR [EBP-106]
68 18714A00
250. 0040784B
251. 0040784C
252. 0040784D
E8 FE000000
保存好后,试运行,晕。程序居然有检验
解决它,这一问题,简单些,不再详述了
用OD载入原play.exe文件(一定要用未修改过的)
BP CreateFileA
F9,然后加载录像的lxe文件,这样就断下来了
F9第二下时,我看到堆栈信息:
1. 0012FCF0
/CALL 到 CreateFileA 来自 play.0046FC5E
2. 0012FCF4
|FileName = &C:\Documents and Settings\Administrator\&,D7,&烂?新&,BD,&&,A8,&文件夹\play.exe&
3. 0012FCF8
|Access = GENERIC_READ
4. 0012FCFC
|ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
5. 0012FD00
|pSecurity = NULL
6. 0012FD04
|Mode = OPEN_EXISTING
7. 0012FD08
|Attributes = NORMAL
8. 0012FD0C
\hTemplateFile = NULL
9. 0012FD10
10. 0012FD14
11. 0012FD18
返回到 play.00466B2E 来自 play.0046FC28
&====反汇编中追随返回
取消断点,ALT+F9 返回
1. 004079FB
E8 C8F00500
2. 00407A00
//返回到此地
3. 00407A02
DWORD PTR [EBP-14]
4. 00407A05
EAX, DWORD PTR [EBP-4]
5. 00407A08
6. 00407A0D
E8 2EEC0700
7. 00407A12
66:C745 E0 00&MOV
WORD PTR [EBP-20], 0
8. 00407A18
SHORT 00407A3D
9. 00407A1A
10. 00407A1C
11. 00407A1D
12. 00407A1F
DWORD PTR [EBP-14], EDX
13. 00407A22
ECX, DWORD PTR [EBP-30]
14. 00407A25
15. 00407A26
E8 1CC30700
16. 00407A2B
17. 00407A2C
18. 00407A2D
19. 00407A32
66:C745 E0 10&MOV
WORD PTR [EBP-20], 10
20. 00407A38
E8 55BC0700
21. 00407A3D
22. 00407A3F
E8 7CEE0500
23. 00407A44
24. 00407A45
E8 FA020700
25. 00407A4A
26. 00407A4B
27. 00407A4D
28. 00407A4F
E8 6CEE0500
29. 00407A54
30. 00407A56
31. 00407A58
32. 00407A5A
EDI, DWORD PTR [EAX]
33. 00407A5C
DWORD PTR [EDI+4]
34. 00407A5F
35. 00407A64
36. 00407A66
8D86 ABAC0900 LEA
EAX, DWORD PTR [ESI+9ACAB]
37. 00407A6C
38. 00407A6D
E8 D60A0700
39. 00407A72
40. 00407A75
41. 00407A77
E8 44EE0500
42. 00407A7C
43. 00407A7D
44. 00407A7E
EDX, DWORD PTR [EBP+8]
45. 00407A81
46. 00407A82
&=======关键CALL F7进入
47. 00407A87
48. 00407A8A
49. 00407A8D
50. 00407A8E
E8 D9000700
51. 00407A93
52. 00407A94
53. 00407A96
DWORD PTR [EBP-C], ESI
54. 00407A99
55. 00407A9B
SHORT 00407ABB
56. 00407A9D
EAX, DWORD PTR [ESI]
57. 00407A9F
DWORD PTR [EBP-8], EAX
58. 00407AA2
66:C745 E0 2C&MOV
WORD PTR [EBP-20], 2C
59. 00407AA8
60. 00407AAD
EAX, DWORD PTR [EBP-C]
61. 00407AB0
ECX, DWORD PTR [EAX]
62. 00407AB2
DWORD PTR [ECX-4]
F7进入CALL
ESI, DWORD PTR [EBP+C]
EDI, DWORD PTR [EBP+8]
8. 0040C02C
9. 0040C02E
E8 AF010000
13. 0040C03C
14. 0040C03E
EAX, DWORD PTR [EBP+10]
19. 0040C04B
CL, BYTE PTR [ESI]
20. 0040C04D
21. 0040C04E
66:8B&|MOV
DX, WORD PTR [EDI+EDX*4+318]
25. 0040C05C
26. 0040C05F
EAX, DWORD PTR [EBP+10] &=====此处改为 mov ebx,01b11
DWORD PTR [EDI+728], EAX
31. 0040C06F
DWORD PTR [EDI+728], 7DA
33. 0040C07B
34. 0040C07C
35. 0040C07D
36. 0040C07E
37. 0040C07F
熟悉了吧,还等什么,动手
2. 0040C05C
3. 0040C05F
BB 111B0000
保存,OK,解决由屏幕录像编辑专家生成的屏幕录像专家格式LXE 播放时的水印问题
第四处水印 由屏幕录像编辑专家生成的屏幕录像编辑专家格式的lxe 水印问题 右下角显示 屏幕录像编辑专家 试用版 红色水印
有了第三处的解决办法,第四处解决就相对简单了.
用OD加载bjp.exe
查找字符串 屏幕录像编辑专家 试用版
E8 4D220200
2. 0040B89B
66:C785 48FFF&MOV
WORD PTR [EBP-B8], 2C
BA AE394900
EDX, 004939AE
返回在此地,右键-数据窗口中跟随-立即数
EAX, DWORD PTR [EBP-64]
5. 0040B8AC
E8 EB210700
1. 数据窗口:
2. 004939AE
C6 C1 C4 BB C2 BC CF F1 B1 E0 BC AD D7 A8 BC D2
屏幕录像编辑专家
3. 004939BE
20 CA D4 D3 C3 B0 E6
试用版..宋
5. 004939AE
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................
6. 004939BE
00 00 00 00 00 00 00
复制到文件-保存文件
呵呵,至此,全部搞定。
最后还有一个小小的问题,屏幕录像专家和屏幕录像编辑专家是作者一起开发的程序,相互的关联性,大家都明白了,因此,假如你***了屏幕录像专家的话,那它的***目录下有一个lxeplay.exe,这是播放lxe文件用的播放器,因此你需要把它处理一下,方法如上,在这儿我就不再撰笔了............
后记:回忆是痛苦的,但也是一个学习进步的过程,破解很累,假如你没有兴趣研究的话,就免了,最后我想破解中必须要善于观察,勤于思考,任何信息都会对你的解密有利。
转接请保持文章的完整性
LJWBH 写于上海
整理下载:/d/VUEMKGXJWMVO
suredwang很详细,很有耐力,楼主辛苦了,谢谢分享!坚决学习了
qqlinhai收藏一下,有空可以跟一下
BlueT东西写得很不错,只是感觉是盗版的,亦或是一稿多投?;):
wf王飞学习了
很有技术。。。
月清晖东西写得很不错,只是感觉是盗版的,亦或是一稿多投?;):
不,是转载。
mmyking不错~!值得学习
babyrobin真长,复杂倒不是复杂 就是要花时间- -! 哪天没字符串找了 那就有意思了;):
wangluosus太耗时间了,另外怎么下载不了呢??我也是迅雷VIP啊
china最好标题注明转载。
坐墙头屏录加密有没有分析?
jonepjxh非常值得学习一篇文章
NearGray楼主已经在标题写明【分享】了~文章写得很详细,可惜我还看不懂。。。:o:
淡定疯着:(:原来是这样啊
ttthhh得花时间学习啊!

参考资料

 

随机推荐