免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 系统安全 > 谁遥控了我的电视?—中兴机顶盒IPTV安全(8)

谁遥控了我的电视?—中兴机顶盒IPTV安全(8)

时间:2011-12-06 22:20来源:未知 整理:寂涯网络 点击:


jsr @r1 ; signal
nop

loc_416058:
mov.l off_416124, r1 ; unk_43D304
mov.l @r1, r1
mov.l off_416128, r2 ; unk_43D31C
mov.w word_41610C, r3 ; h'400
mov r1, r4
mov r2, r5
mov r3, r6
mov.l off_41612C, r1 ; loc_414BA8
jsr @r1 ; loc_414BA8
nop
cmp/pl r0
bf loc_41608C
mov.l off_416130, r1 ; aKaraokReadJava ; "karaok, read javaSock: %s\n"
mov.l off_416128, r2 ; unk_43D31C
mov r1, r4
mov r2, r5
mov.l off_416134, r1 ; printf
jsr @r1 ; printf
nop
mov.l off_416128, r1 ; unk_43D31C
mov r1, r4
mov.l  off_416138, r1 ; (dword_4158B8+h'DC)//h'4F222FE6, signal 函数设置的
信号
jsr @r1
nop  

bra loc_416228
nop
loc_40EF98:

tst r1, r1
bt dword_40EFD0+h'26
mov.l off_40F008, r1 ; unk_43C168
mov.l @r1, r1
cmp/pl r1
bf dword_40EFD0+h'26
mov.l off_40F00C, r2 ; aSendToZtebwS ; "Send to ztebw:%s\n"
mov r14, r1
add #-h'34, r1
mov.l @(h'3C,r1), r1
mov r2, r4
mov r1, r5
mov.l  off_40F010, r1 ; printf //输出“Send to ztebw:”,JAVA、ACK、VPLAYER

…(略) 

虽然在 telnet中不能输入连续的字符串,但是我们可以通过编程实现,向机顶盒的TCP3465
端口发送完整的命令字符串。 ztebw实质是茁壮 iPanel浏览器的修改版,需要注意的是ztebw
没有引入库文件,不直接调用标准c函数,增加了代码分析的难度。

分析 ztebw反汇编代码,确定出ztebw浏览器支持的命令,代码如下:

loc_56011C:
...(略) 
mov.l off_5602B4, r9 ; sub_5E3234
add #8, r15
mov.l off_5602B8, r5 ; aPlay ; "play"
jsr @r9 ; sub_5E3234  //比较r4和r5字符串,相同返回0
mov r8, r4
tst r0, r0
bf loc_560172
mov.l off_5602BC, r0 ; sub_561A64
...(略) //play,则调用sub_561A64
loc_560172:  ; "testplay"
mov.l off_5602CC, r5 ; aTestplay
jsr @r9
mov r8, r4 

tst r0, r0
bf/s loc_56018E
mov r8, r5
...(略) // testplay,则调用 sub_562EF4
loc_56018E:  ; "pause"
mov.l off_5602D4, r5 ; aPause
jsr @r9
mov r8, r4
tst r0, r0
bf/s loc_5601A4
mov #2, r4
...(略) //pause,则调用 sub_5620DC
off_5602A8:.data.l aOnbwplaycontro ; "OnBwPlayControl"
off_5602AC:.data.l aSDSPlayContr_0 ; "%s[%d]:[%s] Play control command
is %s."...
off_5602B0:.data.l aMc_evtproces_0 ; "mc_evtprocessor.c"
off_5602B8:.data.l aPlay ; "play"
off_5602CC:.data.l aTestplay ; "testplay"
off_5602D4:.data.l aPause ; "pause"
off_5602DC:.data.l aResume ; "resume"
off_5602E0:.data.l aStop ; "stop"
off_5602E4:.data.l aStopwithdiag ; "stopwithdiag"
off_5602F0:.data.l aSeek ; "seek"
off_5602F8:.data.l aFf ; "FF"
off_560300:.data.l aRr ; "RR"
off_560304:.data.l aSDSRrSpeedIsD ; "%s[%d]:[%s] RR speed is %d\n"
off_560310:.data.l aSDSUnknownPlay ; "%s[%d]:[%s] Unknown play control
comman"...

代码中的 sub_5E3234 过程(函数)完成类似 strcmp()函数功能,代码分析如下。当字符串
比较一致时,调用相应的过程(函数),向vplayer 进程提交控制命令“play”(播放)、“stop”
(停止)、“pause”(暂停)、“resume”(恢复)、“setmute”(静音)等,完成对播放器的远程
控制。

sub_5E3234:
mov.l r14, @-r15
mov r15, r14
loc_5E3238:
mov.b  @r4+, r1  //(R4)→符号扩展→R1,R4+1→R4
mov.b  @r5+, r2  //(R5)→符号扩展→R2,R5+1→R5
extu.b r1, r0  //r1字节零扩展,按单字节字符处理
tst r0, r0
bf/s loc_5E3248  //r4读出的字符不为空时,跳转 loc_5E3248,与r5字符比

extu.b r2, r2  // r2字节零扩展,按单字节字符处理
bra loc_5E324E  // r4读出的字符为空时,函数退出,返回值为r2符号取反
neg r2, r0  //符号取反,即0减 r2保存到 r0 

sub r2, r0  // R0-R2→R0
loc_5E324E:
mov r14, r15
mov.l @r15+, r14
rts
nop
; End of function sub_5E3234
//该函数类似strcmp(str1,str2)函数,比较 str1 和 str2 字符串,相等返回 0 

本页地址 http://www.jybase.net/xitonganquan/20111206699.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com