阅读:2356回复:4
关于字符串处理
我用这种方法向一个文件写东西:
fprintf(webshell,"\\x%x",shellcode); 但是文件中保存的是: \x2d\x6\xffffffb9\x11\x11\x11\x60\xffffffa0\xffffffe0\x2\x2f\xffffff97\xb\x56\x76\x10\x64\xffffffe0\xffffff90\x36\xc\xffffff9d\xffffffd8\xfffffff4\xffffffc1\xffffff9e\xffffff9a\xffffff8b\xffffff9d\xffffff9a 不知道为什么会出现那么多ffffff,请问怎么把那些个ffffff去掉。 最好给出些从文件中去掉特定字符串的示例代码; 注: 这是我写的一段c++ sdk程序中出现的问题,似乎不能直接使用mfc中的CString,CStdFile之类的类。 |
|
|
沙发#
发布于:2004-11-14 15:39
这个论坛对“\\”进行了过滤,
fprintf(webshell,"\\x%x",shellcode);这一行x%x前有两个"\\" , 输出的文件中的x其实是\\x |
|
|
板凳#
发布于:2004-11-15 09:00
如果出现负值存储是前面都是1,所以输出时负数前面会出现很多F
我以前试着用这种方法过滤: 根据shellcode的类型处理 char时,shellcode与上0xff short时,shellcode与上0xffff 如: fprintf(webshell,"\\x%x",shellcode&0xff); |
|
|
地板#
发布于:2004-11-15 09:24
ffffff 的确去掉了,现在的显示结果是:
\xeb\xe\x5b\x4b\x33\xc9\xb1\xf4\x80\x34\xb\xee 发现了新问题,例如如果要显示的是\x0e,那么它实际显示的是\xe ,请问怎样才能把0加上? [编辑 - 11/15/04 by rhettxie] |
|
|
地下室#
发布于:2004-11-15 12:51
ffffff 的确去掉了,现在的显示结果是: 变为x%2x |
|
|