如何获得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个字节。