如何获得char指针的大小

char *data = "\x30\x2e\x30\x2e\x30\x2e\x30\x3a\x30";

使用strlen(data)sizeof(data)总是返回1

最佳答案

strlen计算C字符串中的字符数,直到遇到0。也许吧
使用strlen获取shell代码的长度很难,因为shell代码
中间可能包含0个字节;它甚至存在null空shell代码(link)的概念——在这种情况下,我相信您可以使用strlen。否则您可以尝试:

char data[] = "\x30\x2e\x30\x2e\x30\x2e\x30\x3a\x30"; // you were missing \ in the beginning
printf("%zu", sizeof(data));

给你10个字节。

09-05 13:43