rhettxie
驱动牛犊
驱动牛犊
  • 注册日期2004-10-27
  • 最后登录2010-02-04
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望65点
  • 贡献值0点
  • 好评度59点
  • 原创分0分
  • 专家分0分
阅读:2356回复:4

关于字符串处理

楼主#
更多 发布于:2004-11-14 15:37
我用这种方法向一个文件写东西:
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之类的类。
静水流深
rhettxie
驱动牛犊
驱动牛犊
  • 注册日期2004-10-27
  • 最后登录2010-02-04
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望65点
  • 贡献值0点
  • 好评度59点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-14 15:39
这个论坛对“\\”进行了过滤,
fprintf(webshell,"\\x%x",shellcode);这一行x%x前有两个"\\"

输出的文件中的x其实是\\x

静水流深
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-15 09:00
如果出现负值存储是前面都是1,所以输出时负数前面会出现很多F
我以前试着用这种方法过滤:

根据shellcode的类型处理
char时,shellcode与上0xff
short时,shellcode与上0xffff
如:
fprintf(webshell,"\\x%x",shellcode&0xff);
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
rhettxie
驱动牛犊
驱动牛犊
  • 注册日期2004-10-27
  • 最后登录2010-02-04
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望65点
  • 贡献值0点
  • 好评度59点
  • 原创分0分
  • 专家分0分
地板#
发布于: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]
静水流深
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-15 12:51
ffffff  的确去掉了,现在的显示结果是:
xebxex5bx4bx33xc9xb1xf4x80x34xbxee

发现了新问题,例如如果要显示的是x0e,那么它实际显示的是xe ,请问怎样才能把0加上?


[编辑 -  11/15/04 by  rhettxie]


变为x%2x
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
游客

返回顶部