VC6生成OBJ文件的奇怪问题。

haugya2014 2016-02-06 09:52:12
最近使用VC6来写一些简单shellcode。
但是VC6生成的二进制文件实在让我抓狂了。

反汇编 dumpbin /disasm xxxx.obj ,编译器我已经禁用优化、使用release版本生成尽量整洁量少的代码。

但是,那个跳转实在是让我奔溃了。因为shellcode是要注入某个游戏进程的,但是VC6生成的shellcode太飘逸了。

反汇编生成的shellcode,明明一些call 语句和jump语句,dumpbin 查看的时候偏移是对的。但是它在偏移地址中多了一个0D 的字节,造成偏移错误,在注入进程中运行失败。

比如要跳到一个地址 EB 08 0A 00 00 这个这个就是对的。
但是往往有时就生成 EB 08 0D 0A 00 00 这个值给我,一到注入进程,就错了。。。。中间这个字节 0D 太诡异了。怎么会加这个字节呢? EB 08 0D 0A 00 跳的地址也不对啊,怎么会跳到那里呢??
...全文
634 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-03-25
  • 打赏
  • 举报
回复
不要把 fopen("...","...");fscanf,fprintf,fgets,fgetc,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fseek,ftell,fread,fwrite,fgetc,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了 使用copy命令的时候请带/b参数。
大熊猫侯佩 2016-02-19
  • 打赏
  • 举报
回复
还在用VC6啊,好怀旧
  • 打赏
  • 举报
回复
怎么生成的?
zara 2016-02-09
  • 打赏
  • 举报
回复
0A 变成了0D 0A,这倒象是被文本软件进行过回车换行模式转换了似的,VC6不会导致这样的问题吧

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧