首页
社区
课程
招聘
[旧帖] [求助]对一函数代码不太理解 0.00雪花
发表于: 2013-4-19 21:35 1884

[旧帖] [求助]对一函数代码不太理解 0.00雪花

2013-4-19 21:35
1884
.text:0000000000686DA0 sub_686DA0      proc near               ; CODE XREF: sub_66F920+2DCp
.text:0000000000686DA0                                         ; sub_66F920+31Fp ...
.text:0000000000686DA0                 push    rbx
.text:0000000000686DA1                 mov     rbx, rdi
.text:0000000000686DA4
.text:0000000000686DA4 loc_686DA4:                             ; CODE XREF: sub_686DA0+18j
.text:0000000000686DA4                 mov     rdx, rbx
.text:0000000000686DA7                 mov     esi, (offset aSSSS+8)
.text:0000000000686DAC                 mov     edi, 1
.text:0000000000686DB1                 xor     eax, eax
.text:0000000000686DB3                 call    sub_686A30
.text:0000000000686DB8                 jmp     short loc_686DA4
.text:0000000000686DB8 sub_686DA0      endp
上这个函数的代码进入loc_686DA4中后,都是一直循环跳回去,那这个函数是怎么结束的呢?
新手小白求教,这些基础都感觉好难学啊

[注意]APP应用上架合规检测服务,协助应用顺利上架!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
个人感觉问题是在这里吧
call    sub_686A30
我也是菜鸟,说错了别介意哈
2013-4-19 21:53
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
.text:0000000000686A30 sub_686A30      proc near               ; CODE XREF: sub_686DA0+13p
.text:0000000000686A30                                         ; .text:000000000068CEA8p ...
.text:0000000000686A30
.text:0000000000686A30 var_728         = dword ptr -728h
.text:0000000000686A30 var_D0          = qword ptr -0D0h
.text:0000000000686A30 var_C8          = qword ptr -0C8h
.text:0000000000686A30 var_C0          = qword ptr -0C0h
.text:0000000000686A30 var_B8          = qword ptr -0B8h
.text:0000000000686A30 var_31          = byte ptr -31h
.text:0000000000686A30
.text:0000000000686A30                 push    rbp
.text:0000000000686A31                 mov     rbp, rsp
.text:0000000000686A34                 push    r15
.text:0000000000686A36                 mov     r15, rsi
.text:0000000000686A39                 push    r14
.text:0000000000686A3B                 push    r13
.text:0000000000686A3D                 push    r12
.text:0000000000686A3F                 push    rbx
.text:0000000000686A40                 sub     rsp, 708h
.text:0000000000686A47                 mov     [rbp+var_D0], rdx
.text:0000000000686A4E                 movzx   edx, al
.text:0000000000686A51                 lea     rax, ds:0[rdx*4]
.text:0000000000686A59                 mov     edx, offset loc_686AA7
.text:0000000000686A5E                 mov     [rbp+var_728], edi
.text:0000000000686A64                 mov     [rbp+var_C8], rcx
.text:0000000000686A6B                 mov     [rbp+var_C0], r8
.text:0000000000686A72                 mov     edi, offset aLibc_fatal_std ; "LIBC_FATAL_STDERR_"
.text:0000000000686A77                 sub     rdx, rax
.text:0000000000686A7A                 lea     rax, [rbp+var_31]
.text:0000000000686A7E                 mov     [rbp+var_B8], r9
.text:0000000000686A85                 jmp     rdx
.text:0000000000686A85 sub_686A30      endp
这个call进去后就是这样,最后jmp跳掉不知哪去了,难道从这就跳出了两个call?新手的鸭梨啊。
如果有错又有什么关系,大家集思广益,一起探讨,主要是为一起提高。就算现在没弄明白,总是对以后有帮助的
2013-4-19 22:09
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
jmp rdx
不知道跳哪里去就动态调试跟进去看一下呗
2013-4-20 09:57
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
调试不行啊,实验室的linux服务器上调试显示有问题,有事到跳转的时候就自动退出调试了,所以现在只能去静态的看
2013-4-20 15:40
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
能先知道这个方法是干什么的吗?然后再去这时应该跳去哪,然后再看debug可能就比较理解了吧。。纯属个人想法。。
2013-4-20 16:25
0
游客
登录 | 注册 方可回帖
返回
//