【发布时间】:2018-03-26 16:48:44
【问题描述】:
这是我的代码:
@execve takes 3 arguments (r0,r1,r2)
mov r7,#11 @syscall number for execve
ldr r0,=addr_of_string
sub r1,r1,r1 @so that r1 can get zero
sub r2,r2,r2 @same for r2
svc #0
end:
mov r7,#1
svc 0
.data
addr_of_string: .asciz "\bin\ls"
它编译成功并成功链接,但是当我执行它时,我得到:
通过 exec 系统调用传递了一个 NULL argv[0]
【问题讨论】:
-
什么操作系统?从代码看,似乎是32位的品种。并且判断我们使用的是
svc 0,我猜是Linux 变种?我不是这里的专家,但是拥有这些信息应该可以帮助其他人更容易地回答这个问题。另外,我希望将 #0 简单地加载到r1和r2中,这不是减法的乐趣,而是我猜对每个人都有自己的乐趣。 -
看看这是否没有帮助:stackoverflow.com/questions/42906569/…
-
是的,先生..这是 Linux on arm v7..
-
如果您按照我提供的链接中的信息进行操作,您可以让您的 exec 功能正常工作吗?
-
在我的情况下.. r0 = "/bin/ls" r1 = 0 r2 = 0 r7 = #11 但是也..它不工作
标签: arm