根据https://www.ethicalhacker.net/columns/heffner/intro-to- assembly -and-reverse-engineering
mov 0xffffffb4,0x1
Run Code Online (Sandbox Code Playgroud)
将数字 1 移入 0xffffffb4。
所以,我决定自己测试一下。在GDB中,x是打印内存地址值的命令。然而,当我跑步时
x 0x00000000004004fc
Run Code Online (Sandbox Code Playgroud)
我没有得到 133(十进制)或 85(十六进制)的值
相反,我得到的是 0x85f445c7。知道这是什么吗?
me@box:~/c$ gdb -q test
Reading symbols from test...done.
(gdb) l
1 #include <stdio.h>
2
3 int main(){
4 int a = 1;
5 int b = 13;
6 int c = 133;
7 printf("Value of C : %d\n",c);
8 return 0;
9 }
(gdb) b 7
Breakpoint 1 at 0x400503: file test.c, line 7.
(gdb) r
Starting program: /home/me/c/test
Breakpoint 1, main …Run Code Online (Sandbox Code Playgroud) 这是我的C代码
C:\Codes>gdb test -q
Reading symbols from C:\Codes\test.exe...done.
(gdb) list 1,15
1 #include<stdio.h>
2
3 int main()
4 {
5 int a = 12345;
6 int b = 0x12345;
7 printf("+-----+-------+---------+----------+\n");
8 printf("| Var | Dec | Hex | Address |\n");
9 printf("+-----+-------+---------+----------+\n");
10 printf("| a | %d | 0x%x | %p |\n",a,a,&a);
11 printf("| b | %d | 0x%x | %p |\n",b,b,&b);
12 printf("+-----+-------+---------+----------+\n");
13
14 return 0;
15 }
(gdb) set disassembly-flavor intel
Run Code Online (Sandbox Code Playgroud)
这是标准输出
C:\Codes>test
+-----+-------+---------+----------+
| Var …Run Code Online (Sandbox Code Playgroud) 我注意到有两个命令可用于显示节点。但是,它仅显示主机名,而不显示 IP 地址。请告诉我是否有办法显示每个节点上的 IP 地址。
knife node list和命令之间有什么区别knife client list?输出看起来很相似。
刀节点列表
C:\chef\cookbooks>knife node list
cheftestnode1
cheftestnode2
cheftestnode3
C:\chef\cookbooks>
Run Code Online (Sandbox Code Playgroud)
刀客户名单
C:\chef\cookbooks>knife client list
admin-validator
cheftestnode1
cheftestnode2
cheftestnode3
C:\chef\cookbooks>
Run Code Online (Sandbox Code Playgroud)
我希望看到 IP 地址格式的输出,而不是像这样的主机名。这可能吗?
C:\chef\cookbooks>knife node list
10.1.1.1
10.1.1.2
10.1.1.3
C:\chef\cookbooks>
Run Code Online (Sandbox Code Playgroud)
或者像这样。可能吗?
C:\chef\cookbooks>knife node list
cheftestnode1 - 10.1.1.1
cheftestnode2 - 10.1.1.2
cheftestnode3 - 10.1.1.3
C:\chef\cookbooks>
Run Code Online (Sandbox Code Playgroud) 以下C代码有char str [3]; 它应该只存储3个char吗?
但是,当我编译并运行程序时,它似乎可以存储更多.
当我输入"ABCDEFGHIJKLMNOPQRSTUVWXY"时,我只收到"分段错误"错误,显然超过3个字符.
我可以知道为什么吗?
p/s:是的,我知道"获取"功能是危险的,不推荐使用.我只是好奇为什么它可以保留更多的数据.
user@box:~/c$ cat -n putsgets.c
1 #include <stdio.h>
2
3 int main()
4 {
5 char str[3];
6 puts("Enter a line of text: ");
7 gets(str);
8 puts("\nYou entered: ");
9 puts(str);
10 return 0;
11 }
user@box:~/c$
user@box:~/c$ gcc putsgets.c -o putsgets
putsgets.c: In function ‘main’:
putsgets.c:7:2: warning: implicit declaration of function ‘gets’ [-Wimplicit-function-declaration]
gets(str);
^~~~
/tmp/cclFmZp2.o: In function `main':
putsgets.c:(.text+0x1f): warning: the `gets' function is dangerous and should not be …Run Code Online (Sandbox Code Playgroud)