ACracker 发表于 2012-11-14 19:56

3gp/mp4/avi/flv/rmvb视频格式转换器爆破解详细过程

本帖最后由 ACracker 于 2012-11-14 19:58 编辑

【软件地址】:www.duote.com/soft/54222.html#download
【原帖地址】:http://pleasereverse.me/thread-98-1-1.html
【使用工具】:OD



OD载入,发现为易语言程序(其实偶不会脱加密壳,找的程序都是不带强壳的),F9运行找到注册的地方。
http://pleasereverse.me/data/attachment/forum/201211/13/165741lelhcyrrrs3h3sep.jpg
神啊原谅我用万恶易语言万能断点,要怪就ximo牛吧。
ALT+E,双击krnln.fnr,CTRL+B查找FF 55 FC,
http://pleasereverse.me/data/attachment/forum/201211/13/165741snvllk5uzlqsrdz8.jpg
确定来到此处F2下断:
http://pleasereverse.me/data/attachment/forum/201211/13/1657423d3rtwd7lltrjdrg.jpg
输入注册码,点击“立即使用正版软件”,OD 断下,F7进入call,就直接来按钮事件的代码,往下拉看看有没有什么可疑的跳转,能静态认出来,就直接改了。
果断水平不过关认不出来,还是老老实实调吧。F8一路向下,遇到跳转慢下来,看看调过的是神马东西,黄天不负苦心人,找到了一个可疑的大跳。
http://pleasereverse.me/data/attachment/forum/201211/13/165743rk3dj1ddtdkj62tx.jpg
运行到此处发现,这个跳转实现了,修改Z标志位,让这个跳 跳不起来,F9运行。出现注册成功的字样,但是真的成功了吗?
添加一个文件,点击 立即转换,出现了这个:
http://pleasereverse.me/data/attachment/forum/201211/13/165743du3fdg0d0g33fedg.jpg
又该怎么办呢?不要急,俗话说山重水复疑无路,柳暗花明又一春。
既然那个跳是关键跳,那就看看上面的关键CALL嘛。
0046977D    8B1D CC0C9900   mov   ebx,dword ptr ds:

00469783    83C3 04               add   ebx,0x4

00469786    895D F8               mov   dword ptr ss:,ebx

00469789    FF75 F8                push    dword ptr ss:

0046978C    E8 31020000      call    视频转换.004699C2

00469791    68 02000080      push    0x80000002

00469796    6A 00                   push    0x0

00469798    50                     push    eax

00469799    68 01000000      push    0x1

0046979E    BB DC090000       mov   ebx,0x9DC

004697A3    E8 83A70000       call    视频转换.00473F2B

004697A8    83C4 10            add   esp,0x10

004697AB    33C9                  xor   ecx,ecx

004697AD    41                     inc   ecx

004697AE    51                      push    ecx

004697AF    50                      push    eax

004697B0    3BC8                  cmp   ecx,eax

004697B2    0F8F D6010000   jg      视频转换.0046998E                  ; 关键跳

004697B8    8B1D CC0C9900   mov   ebx,dword ptr ds:

004697BE    83C3 04            add   ebx,0x4

这个跳转是比较ecx与eax的值,ecx大于eax则跳走,即失败。上面的xor   ecx,ecx 清0 ecx,inc ecx ,是ecx自加1,所以ecx固定为1 ,所以这里对这个跳有影响的只有eax,eax为0就失败,大于0就成功。

一般关键跳上面一个就是关键CALL,但是这里是例外,跟踪发现
004697A3    E8 83A70000       call    视频转换.00473F2B
这句不会改变eax的值。再验证一次,重新运行,F4运行到004697A3 这个CALL,右键寄存器窗口的eax,选择置1,此事eax变成了1,F8步过这个CALL,发现eax还是1,那么说明以上那个想法是正确的。那么再看一下上面那个CALL是否是关键CALL,再次运行,发现
0046978C    E8 31020000      call    视频转换.004699C2
这个CALL将eax置0了,他是关键CALL。跟进去又看到一堆代码,头又大了。静下来想想,我们是爆破,只需要关心eax的值就可以了,于是代码一直往下拉,直到看到retn。
00469BC0    33C9                     xor   ecx,ecx

00469BC2    41                           inc   ecx

00469BC3    51                           push    ecx

00469BC4    50                           push    eax

00469BC5    3BC8                     cmp   ecx,eax

00469BC7    0F8F 0E000000      jg      视频转换.00469BDB

00469BCD    B8 01000000         mov   eax,0x1

00469BD2    E9 22000000         jmp   视频转换.00469BF9

00469BD7    58                        pop   eax

00469BD8    59                        pop   ecx

00469BD9^ EB E7         jmp   X视频转换.00469BC2

00469BDB    83C4 08               add   esp,0x8

00469BDE    58                        pop   eax

00469BDF    59                        pop   ecx

00469BE0^ EB 8A                  jmp   X视频转换.00469B6C

00469BE2    83C4 08                  add   esp,0x8

00469BE5    58                         pop   eax

00469BE6    59                         pop   ecx

00469BE7^ E9 2AFFFFFF         jmp   视频转换.00469B16

00469BEC    83C4 08                add   esp,0x8

00469BEF    B8 00000000         mov   eax,0x0

00469BF4    E9 00000000          jmp   视频转换.00469BF9

00469BF9    8BE5                      mov   esp,ebp

00469BFB    5D                         pop   ebp

00469BFC    C2 0400                retn    0x4

代码有点奇怪,不过我还是看到了 我想要的00469BCD    B8 01000000         mov   eax,0x1 将1赋给eax,由上面的分析可以知道eax为1就成功了。但是这句赋值上面有句跳转 跳过这句话,所以可以将那个跳转nop掉就可以了,但是本着爆破程序改动越小越好的原则,将比较语句改一下:cmp   ecx,eax改为cmp   eax,ecx,这样就只改了一字节。
保存运行
http://pleasereverse.me/data/attachment/forum/201211/13/1657433yhfffqmbfdbhvy2.jpg
又说成功了,但是真的成功了吗?事实上他妹的还是没有成功。


只能转换前2分钟的视频,应该是作者留的暗桩,但是我看了下,没有跳过这个暗装的地方。
既然已经转换了2分钟说明程序的功能还是完整的,只是提前结束了。
2分钟即120 秒, 120000 毫秒,搜索这两个常量无果。
BP ReadFile、OpenFile、CreateFile,结果还是无果,但是发现了这个程序是调用cmd.exe来转换的,而参数是字符串的,所以搜索字符串,ctrl+f 查找120,找到了一个,双击进入
http://pleasereverse.me/data/attachment/forum/201211/14/19462448km9pi4hjhjhdpp.jpg

熟悉DOS命令的 shutdown 关机命令 shutdown -s -t 120 就是120秒后关机。
这里上面有个跳,跳过这个参数,将这个跳改成jmp ,破解就完成了。
这里的比较是这个函数的一个参数与0比较,但是我在上面找到传入的参数的地方直接是Push 0,貌似不改程序,这个跳永远都不会实现。不知道是作者故意这样弄的,还是有地方我没看到。
http://pleasereverse.me/data/attachment/forum/201211/14/194624qrhzxry0e5ujdlvh.jpg

其实所有的转换功能并不是有这个程序的作者做的,而是由ffmpeg完成的。
总结:
破解的时候,多站在作者的角度想想,作者使用的是什么注册机制,怎么实现,爆破点在哪儿,找到爆破点有哪些方法。
跟代码的时候开始初略的开一下流程,发现不了什么再仔细看,有时候可以省很多时间。
上次爆破的一个软件采用了全局变量作为唯一注册标志,这个软件采用了唯一算法判断注册成功与否。建议读者再写共享软件的时候注册码分开存放,分段读取判断。

另外求一起学逆向的基友,站内加好友,一个人学太无聊了,没有基情。遇到问题,也没人讨论。

dwdfs 发表于 2014-2-28 21:07

《万能视频格式转换器》是一款功能强大的全能视频格式转换软件,支持多种视频格式转换。万能视频转换器可以将RM、RMVB、AVI、WMV、MPG、MPEG、FLV、3GP、MP4、SWF、ASF、DIVX、XVID、3GP2、FLV1、MPEG1、MPEG2、MPEG3、MPEG4、H264等视频格式转换,用于各种mp4播放机、手机、psp游戏机、iPod、iPod、dvd、iphone机、高清电视等设备播放。这是一款用于专业视频转换和压缩的软件,其采用全新的国际一流编解码技术,转换质量和速度都处于国内领先技术,具有转换速度快,支持批量转换,上手容易,操作简单易用等特点

下载地址
视频格式转换器 http://www.onlinedown.net/soft/99509.htm

视频格式转换器 http://www.skycn.com/soft/appid/15894.html

3gp格式转换器是一款3GP视频压缩转换软件,万能3gp转换器支持将常用的RM转3GP、MPG转3GP、RMVB转3GP、AVI转3GP、MOV转3GP、FLV转 3GP、SWF转3GP、ASF转3GP、DAT转3GP、VOB转3GP等视频文件转换成手机视频使用的3GP视频文件格式,这是一款超级好用的手机3gp格式转换器 ,转换后画质高视频清楚。具有转换速度快,支持批量转换,上手容易,操作简单易用等特点。

3gp格式转换器免费版下载 http://www.onlinedown.net/soft/91219.htm

mp4格式转换器-mp4视频格式转换器是一款mp4视频压缩转换软件。mp4格式转换器具有转换速度快,支持批量转换,上手容易,操作简单易用等特点。mp4转换器支持将常用的RM转mp4、RMVB转mp4、MPG转mp4、AVI转mp4、ASF转mp4、DAT转mp4、VOB转mp4、MOV转mp4 WMV转mp4等视频文件转换成手机/mp4/mp5视频使用的mp4视频文件格式。

mp4格式转换器免费版下载 http://www.onlinedown.net/soft/94444.htm


SunerC 发表于 2012-11-14 20:05

确定是原创?我怎么记得有人发过了?

ACracker 发表于 2012-11-14 20:11

SunerC 发表于 2012-11-14 20:05 static/image/common/back.gif
确定是原创?我怎么记得有人发过了?

哈哈,就是我,上午发的那个,有个暗装没去掉。

金lq 发表于 2012-11-14 20:21

学习了,

wgz001 发表于 2012-11-14 20:24

感谢分享原创作品期待更多精彩文章{:1_927:}

864233160 发表于 2012-11-14 20:34

感谢分享原创作品期待更多精彩文章

a22271001 发表于 2012-11-14 20:36

易语言万能断点是什么?{:1_904:}

小雨细无声 发表于 2012-11-14 20:38

学一招,关机代码。还想知道蓝屏代码和格盘代码。

ACracker 发表于 2012-11-14 20:53

a22271001 发表于 2012-11-14 20:36 static/image/common/back.gif
易语言万能断点是什么?

上面不说了吗?

ACracker 发表于 2012-11-14 20:54

小雨细无声 发表于 2012-11-14 20:38 static/image/common/back.gif
学一招,关机代码。还想知道蓝屏代码和格盘代码。

格盘也有命令,蓝屏要写程序。
页: [1] 2 3
查看完整版本: 3gp/mp4/avi/flv/rmvb视频格式转换器爆破解详细过程