gxr2016 发表于 2017-8-21 15:08

boilsoft系列软件破解思路

本帖最后由 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:,eax
004174D2   .E8 99FDFEFF   call bsvideoc.00407270
004174D7   >803D A05A5B00>cmp byte ptr ds:,0x0
004174DE   .^ 0F85 F3FEFFFF jnz bsvideoc.004173D7
004174E4   .833D 50AE5B00>cmp dword ptr ds:,0x0
004174EB    ^ 0F84 E6FEFFFF je bsvideoc.004173D7
004174F1   .A1 4CAD5B00   mov eax,dword ptr ds:

目标地址:0x5BAE50就是关键。在目标地址处--右键--查找参照--地址常量

参考位于 bsvideoc:.text 于 005BAE50
地址       反汇编                                    注释
0041746D   mov dword ptr ds:,0x1         ds:=00000000
004174E4   cmp dword ptr ds:,0x0         (初始 CPU 选择)
00417530   cmp dword ptr ds:,0x0         ds:=00000000
0041775C   cmp dword ptr ds:,0x0         ds:=00000000


在找到的每处F2下断,同时在第一处段首004172C0下断,一共下了5个断点。

Breakpoints
地址       模块       激活                     反汇编                              注释
004172C0   bsvideoc   始终                         push ebp
0041746D   bsvideoc   始终                         mov dword ptr ds:,0x1
004174E4   bsvideoc   始终                         cmp dword ptr ds:,0x0
00417530   bsvideoc   始终                         cmp dword ptr ds:,0x0
0041775C   bsvideoc   始终                         cmp dword ptr ds:,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 ,0x1(赋值为1)
0053E5F5|.EB 07         jmp short bsvideoc.0053E5FE
0053E5F7|>C745 DC 00000>mov ,0x0

此时注册部分就完成了。

下面就是去水印的问题了。


F9,运行程序。发现注册提示没有了,打开文件,开始转换,程序被断下。


0041775C|.833D 50AE5B00>cmp dword ptr ds:,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:,0x0
00417537|.C602 00       mov byte ptr ds:,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 密码: **** Hidden Message *****


Oneness神 发表于 2017-8-21 18:03

谢谢原创视频,观看学习大神思路

蓝色贝雷帽 发表于 2017-8-21 19:03

观摩学习大牛咋破法

夏无道 发表于 2017-8-21 20:28

非常感谢楼主!!!

tingwei3 发表于 2017-8-21 22:33

回复学习,谢谢分享

Jacob 发表于 2017-8-21 23:07

感谢楼主的教程,已经学习。呵呵                           

wzgangwzgang 发表于 2017-8-22 08:30

谢谢分享,学习思路!!!

newboy 发表于 2017-8-22 10:47

感谢分析,学习思路

王界之王 发表于 2017-8-22 16:44

谢谢{:5_116:}

syzh802618 发表于 2017-8-23 15:22

非常感谢楼主!!!
页: [1] 2 3
查看完整版本: boilsoft系列软件逆向分析思路