|
本帖最后由 gxr2016 于 2017-8-21 15:16 编辑
boilsoft系列软件逆向分析思路
网址:http://www.boilsoft.com/index.htm
这里以Boilsoft Video Converter 3.02.8为例
下载地址:http://www.boilsoft.net/download/bsvideoconverter.exe
下载安装就不演示了。
OD载入,快捷键:CTRL+B,输入:84 C0 75 ?? 33 C0
一共找到两处:
第一处:
004173D0 . 83C4 08 add esp,0x8
004173D3 . 84C0 test al,al
004173D5 . 75 17 jnz short bsvideoc.004173EE
004173D7 33C0 xor eax,eax
第二处:
0042A6E3 |. E8 D8F9FFFF call bsvideoc.0042A0C0
0042A6E8 |. 84C0 test al,al
0042A6EA |. 75 06 jnz short bsvideoc.0042A6F2
0042A6EC |. 33C0 xor eax,eax
第一处有我们逆向的关键地址,在第一处鼠标向下拉,找到
004174CD . A3 4CAD5B00 mov dword ptr ds:[0x5BAD4C],eax
004174D2 . E8 99FDFEFF call bsvideoc.00407270
004174D7 > 803D A05A5B00>cmp byte ptr ds:[0x5B5AA0],0x0
004174DE .^ 0F85 F3FEFFFF jnz bsvideoc.004173D7
004174E4 . 833D 50AE5B00>cmp dword ptr ds:[0x5BAE50],0x0
004174EB ^ 0F84 E6FEFFFF je bsvideoc.004173D7
004174F1 . A1 4CAD5B00 mov eax,dword ptr ds:[0x5BAD4C]
目标地址:0x5BAE50就是关键。在目标地址处--右键--查找参照--地址常量
参考位于 bsvideoc:.text 于 005BAE50
地址 反汇编 注释
0041746D mov dword ptr ds:[0x5BAE50],0x1 ds:[005BAE50]=00000000
004174E4 cmp dword ptr ds:[0x5BAE50],0x0 (初始 CPU 选择)
00417530 cmp dword ptr ds:[0x5BAE50],0x0 ds:[005BAE50]=00000000
0041775C cmp dword ptr ds:[0x5BAE50],0x0 ds:[005BAE50]=00000000
在找到的每处F2下断,同时在第一处段首004172C0下断,一共下了5个断点。
Breakpoints
地址 模块 激活 反汇编 注释
004172C0 bsvideoc 始终 push ebp
0041746D bsvideoc 始终 mov dword ptr ds:[0x5BAE50],0x1
004174E4 bsvideoc 始终 cmp dword ptr ds:[0x5BAE50],0x0
00417530 bsvideoc 始终 cmp dword ptr ds:[0x5BAE50],0x0
0041775C bsvideoc 始终 cmp dword ptr ds:[0x5BAE50],0x0
运行程序,断在004172C0,一路F8,
在004172E4 /0F85 ED010000 jnz bsvideoc.004174D7
改为:004172E4 /0F84 ED010000 je bsvideoc.004174D7(让跳转实现)
在004174EB ^\0F84 E6FEFFFF je bsvideoc.004173D7
改为:004174EB ^\0F85 E6FEFFFF jnz bsvideoc.004173D7(让跳转不实现)
在00417515 0f94c0 sete al处,发现条件为真,eax赋值为1
一路F8,出CALL后,来到
0053E5E9 |. 83F8 01 cmp eax,0x1(比较EAX与1的关系)
0053E5EC 75 09 jnz short bsvideoc.0053E5F7(跳转不实现)
0053E5EE |. C745 DC 01000>mov [local.9],0x1([local.9]赋值为1)
0053E5F5 |. EB 07 jmp short bsvideoc.0053E5FE
0053E5F7 |> C745 DC 00000>mov [local.9],0x0
此时注册部分就完成了。
下面就是去水印的问题了。
F9,运行程序。发现注册提示没有了,打开文件,开始转换,程序被断下。
0041775C |. 833D 50AE5B00>cmp dword ptr ds:[0x5BAE50],0x0
00417763 74 71 je short bsvideoc.004177D6
改00417763 /74 71 je short bsvideoc.004177D6
为
00417763 /75 71 jnz short bsvideoc.004177D6(让跳转不实现),继续按F9,运行。
开始转换,打开转换后的文件,发现水印没有了。
还有一处,
00417530 /$ 833D 50AE5B00>cmp dword ptr ds:[0x5BAE50],0x0
00417537 |. C602 00 mov byte ptr ds:[edx],0x0
0041753A 74 14 je short bsvideoc.00417550
一共改了四处:
Patches
地址 大小 状态 旧 新 注释
004172E4 6. 激活 jnz bsvideoc.004174D7 je bsvideoc.004174D7 要让这个跳转实现。改JNZ为JE
004174EB 6. 激活 je bsvideoc.004173D7 jnz bsvideoc.004173D7 这个跳转不能实现,改JE为JNZ
0041753A 2. 激活 je short bsvideoc.00417550 jnz short bsvideoc.00417550 跳转不能实现,改JE为JNZ
00417763 2. 激活 je short bsvideoc.004177D6 jnz short bsvideoc.004177D6 这次我们让跳转不实现。改JE为JNZ
修改后,保存文件,即为逆向版。我们看一下原版与逆向版的区别吧。
逆向版没有注册标志及注册提醒,同时转换视频没有水印。
相关资料下载:链接: https://pan.baidu.com/s/1c1E9WDa 密码:
|
评分
-
参与人数 16 | 威望 +1 |
HB +25 |
THX +15 |
收起
理由
|
虚心学习
| |
|
+ 1 |
[吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少! |
lies
| |
|
+ 1 |
|
yexing
| |
|
+ 1 |
|
禽大师
| |
|
+ 1 |
|
别管我了行
| |
|
+ 1 |
|
消逝的过去
| |
+ 2 |
|
|
飞刀梦想
| |
|
+ 1 |
|
xgbnapsua
| |
|
+ 1 |
|
agan8888
| |
|
+ 1 |
|
DDK4282
| |
+ 3 |
+ 1 |
[快捷评语]--积极评分,从我做起。感谢分享! |
a1186494930
| |
+ 2 |
+ 1 |
[快捷评语] - 分享精神,是最值得尊敬的! |
insane
| |
+ 5 |
+ 1 |
[快捷评语] - 吃水不忘打井人,给个评分懂感恩! |
千里冰封
| |
|
+ 1 |
[快捷评语] - 2017,让我们17学破解! |
syzh802618
| |
+ 2 |
+ 1 |
[快捷评语] - 分享精神,是最值得尊敬的! |
tingwei3
| |
+ 1 |
+ 1 |
[快捷评语] - 分享精神,是最值得尊敬的! |
Shark恒
| + 1 |
+ 10 |
+ 1 |
[快捷评语] - 吃水不忘打井人,给个评分懂感恩! |
查看全部评分
|