如何在EXE代码中添加一段自己写的代码

zkcxh 2011-12-31 01:52:42
这个EXE文件不是PE格式的,是PASCAL做的程序,在DOS下运行;现需要在尾部或者中间部分添加自己的代码,然后在原程序中调用自己的代码.自己尝试了再尾部添加了一段代码,调用时也指向了该位置,但查看内存时自己添加的变为空值(都是00),请问是否要修改头部信息?如何修改?
...全文
402 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangbch 2012-01-06
  • 打赏
  • 举报
回复
如果是16位程序,那么应该是MZ格式的,你用ultredit 打开,看一下前2个字符就知道了。MZ文件的的格式请参考http://hi.baidu.com/%CE%B4%C0%B4%CF%D6%D4%DA%B4%B4%D4%EC/blog/item/60be5c216713ee4a9922ed7d.html,你需要修改文件头的某些字段才能正确工作。好多加密软件和病毒就是通过修改mz文件来达到润兴附加的代码的目的。
zkcxh 2012-01-03
  • 打赏
  • 举报
回复
恩是手动修改的二进制代码,定位应该没问题,附近的代码都能看到,只是自己添加的看不到,估计程序段前有些要修改,不知道怎么改啊;这个程序是16位的,用PE工具打开,提示说不是PE格式.有高手的话,请留下QQ,如能帮完成,可给现金奖励!!!
speacegenaul 2012-01-02
  • 打赏
  • 举报
回复
不知扫
大熊猫侯佩 2012-01-01
  • 打赏
  • 举报
回复
NT下win32平台都是PE格式吧?如果那个程序不是,那么是什么格式?楼主用PEtool看一下。
pianoid 2012-01-01
  • 打赏
  • 举报
回复
似乎你是手工修改了二进制文件?
我猜是你看错位置了,EXE文件在硬盘中存储时文件对齐是按512字节对齐,但是加载到内存后是按4KB对齐的。
还有得注意一下重定位。
pianoid 2012-01-01
  • 打赏
  • 举报
回复
似乎你是手工修改了二进制文件?
我猜是你看错位置了,EXE文件在硬盘中存储时文件对齐是按512字节对齐,但是加载到内存后是按4KB对齐的。
还有得注意一下重定位。

21,459

社区成员

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

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