社区
Delphi
帖子详情
如何在Exe文件中加数据?
heyj
2000-05-26 03:38:00
各位高手,小弟今日需要遍一个向已有的Exe文件中加数据的程序,这种自带数据的Exe文件例如Readme.exe。注意,不采用Dephi中的Resource文件。望指教,多谢,多谢!
...全文
116
回复
打赏
收藏
如何在Exe文件中加数据?
各位高手,小弟今日需要遍一个向已有的Exe文件中加数据的程序,这种自带数据的Exe文件例如Readme.exe。注意,不采用Dephi中的Resource文件。望指教,多谢,多谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
windows上可编译Linux内核
编译过程: 1). 解压后默认的
文件
夹位置是在D:\Linux-0.11,如果你不是将
文件
解压到该目录下, 你要修改MinGW32目录下的MinGW32.bat
文件
,将里面的PATH指向MinGW32的bin目录. 2). 打开Linux-0.11目录,双击MinGW32.bat快捷方式,打开控制台. 3). make 一下,生成1.44M的Boot.img软盘镜像,要清除编译结果请"make clean" 4). 如果安装了bochs,直接双击bochsrc.bxrc即可运行Linux-0.11了. 5). 也可用其它虚拟机加载Boot.img后运行,如果出现Kernel panic,请把虚拟机里的硬盘删了 6). 在出现Insert root floppy and press ENTER以后,将rootimage-0.11.img载入虚拟软驱,回车 这就是能在windows环境下编译的Linux 0.11了,不是在Cygwin,也不是在虚拟机里,而是使用MinGW. 下面是在Windows下编译Linux 0.11会遇到的问题和对原
文件
作的修改: 1.赵炯博士已经将汇编程序中引用的C变量(包括嵌入汇编的C变量)的下划线去掉了,但MinGW的gcc可能是为了与其它Windows下的编译器保持兼容,并不能识别这些不带下划线的C变量,因而还得把原先已经在汇编程序中去掉下划线的C变量加上下划线,同时也要把被C程序引用的汇编程序中的变量加上下划线. 2.MinGW中不带as86编译器,因而把boot目录下原先用as86编译的bootsect.s和setup.s两个程序修改成能用nasm编译的程序.并且更名为bootsect.asm和setup.asm. 3.在Makefile作的主要修改: 在LDFLAGS
中加
了--image-base 0x0000 将elf_i386改成i386pe 将cd 与 make 之间的;改成&,如cd kernel ; make 改成cd kernel & make MinGW中没有sync这个程序,可以把它注释掉,更简单的办法是写一个sync.c,这个sync.c只包含一个空的main函数,编译成sync.
exe
因为类似的原因,make dep会出错 4.生成的system
文件
是PE格式的(PE是Portable
Exe
cutable的简称),这是windows下的可执行
文件
的格式,显然是不能直接执行的,必须加以转化.我实现了通过两种方式加以转化. 1)写一个程序Trans.cpp将system.
exe
里的代码和
数据
从PE
文件
里解析出来,生成一个system.bin
文件
,这个
文件
是能被setup模块直接加载的.我已经将这个程序放在了Linux-0.11的tools目录下,要微软的编译器编译. 2)自己写一个PE Loader,这种方式比较麻烦,但是想想自己也能做一个PE Loader,还是满有成就感的,尽管这是一个最简单的Loader.代码是加在Linux-0.11-With-PE-Loader\boot目录下的setup.asm
文件
里,里面有详细的注释. 5.对tools下的build.c作了修改,使其能生成可引导的1.44M的软盘镜像
文件
Boot.img 6.在Link的过程中,init目录下的main.c会出现以下错误: boot/head.o(.text+0x540c):fake: undefined reference to `_main' init/main.o(.text+0x16f):main.c: undefined reference to `_alloca' init/main.o(.text+0x174):main.c: undefined reference to `__main' make: *** [tools/system.
exe
] Error 1 第一个和最后一个错误还好理解,但中间那个错误那就莫明其妙了,因为Linux 0.11根本没有这个函数,在gcc的编译选项里也有-nostdinc .有一个解释是main函数不是一个普通的函数,MinGW gcc会对它作特殊的处理.解决的办法其实也很简单,把main.c下面的main函数改名为_main,或者是干脆把它改成另外一个函数,就改成start吧.记得把head.s里的_main也改了. 在最后,要感谢《自己动手写操作系统》的作者于渊,其实我也是先将原先只能在Linux下编译的书里源代码用MinGW移植到Windows下编译的过程中才试着在Windows下编译Linux 0.11源代码的,有了在Windows下编译Linux 0.11源代码的经验,移植高版本的源代码,像0.12,0.95,0.96等等版本应该不会有太大的麻烦了。 也要感谢Linux内核完全注释的作者赵炯博士,是他拉接了操作系统与操作系统爱好者的距离. 最后,我也非常想和操作系统爱好者们共同交流心得体会,也希望能多认识一些朋友. 我的网名:flyfish 我的QQ:785606288 E-mail:I2CBus@126.com 另外,要转载请保持本
文件
的完整性,请尊重别人的劳动果实. 修改日志: 08/3/29 修改了一下Makefile,旧的Makefile在某些
文件
更新后还会重新编译。 修改了Trans.cpp中的一个dug,该dug在translate MinGW gcc编译的程序时可能会出错。用MinGW gcc 编译的程序的VirtualAddress的形式可能是0xFFC1000这样的形式,其实0x1000才是它的VirtualAddress 08/4/2 修改了下MinGW32.bat,现在已经不用重设路径了。 08/4/4 Trans.cpp还是有错,如果VirtualAddress>0xffff,那么生成的system.bin就错了,bochs调试时会一直重启。 权宜之计,把0xffff再改成0x3ffff,这样VirtualAddress就不能大于0x3ffff,不知谁有更好的解决方法,
SpiceworksExtract:超级简单的命令行应用程序,可将设备
数据
提取到csv中以进行手动导入
Spiceworks提取 超级简单的命令行应用程序,可将设备
数据
提取到csv中以进行手动导入 与.Net 4.5 Service Agent应用程序结合使用。 服务代理旨在与服务器直接连接,但是如果服务不可用,则需要手动添加设备。 这将使您保存到CSV以便导入。 目前,这里有来自调试的Spiceworks代理
文件
,但谁知道这是否合法。 安装代理,只需在所有必填字段(服务器地址和密钥)
中加
一个点即可。 将SpiceworksExtract.
exe
复制到程序
文件
文件
夹中并运行它。 或者,安装,将所有
文件
复制到其他位置,然后卸载。 运行示例 添加到常规安装路径 复制到另一个位置
Mentohust x86 x64
Mentohust 锐捷认证 MentoHUST 2009Beta版 声明: 1、本程序所有涉及锐捷、赛尔认证的功能均是来自前辈公开代码及抓包分析。 2、本程序于个人仅供学习,于他人仅供方便认证,不得使用本程序有意妨害锐捷、赛尔认证机制及相关方利益。 3、本程序不可用于任何商业和不良用途,否则一切后果自负。 4、本程序不提供任何服务及保障,编写及维护纯属个人爱好,随时可能被终止。 5、由于任何不遵守上述条例引起的纠纷,均与本人无关,使用本程序者,即表示同意该声明。谢谢合作。 小提示: 1、建议不要单独安装WinPcap,而直接使用本程序附带的,因为单独安装会开启两个服务,其中一个服务根本用不上,却较占资源。 3、如果将客户端设为了开机自动运行,却发现要等很久才看到程序界面,而在任务管理器中发现程序其实早就启动了,请打开注册表键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NPF],并将键值Start设为2。 3、若即使选择以管理员权限运行仍提示“找不到网卡”,请单独安装WinPcap最新版试试。 版本历史: V2.4.0 版 1、内置
数据
改为了xrgsu的。 2、对
数据
包格式作了修改,同时使用了锐捷认证时的Start包和Md5包。 3、加入了对赛尔的支持。 ===================================================================== 附MentoHUSTTool相关介绍: MentoHUST
数据
包
文件
由两部分组成,第一部分是根据锐捷8021x.
exe
文件
生成的用于Md5校验的
数据
,第二部分是锐捷认证时发送的部分
数据
(旧版本使用的是Start包,新版本使用的是Start包+Md5包),MentoHUSTTool的功能是修改第二部分
数据
。 因为仅仅是修改第二部分
数据
,所以你必须有相应版本的原始
数据
包
文件
。 使用方法:运行程序后,选择正确的网卡和原始
数据
文件
,根据需要决定是否勾选“只抓取Start包”,点击“开始”,运行锐捷开始认证,稍后即会弹出“另存为”对话框,输入
文件
名,确定,提示保存成功,就完成了
数据
包的修改。 ===================================================================== V2.3.1 版 1、
数据
包
文件
认证
数据
部分改为0x200字节(不过这样改后原有
数据
包
文件
将无法直接使用,需要手工用十六进制编辑器如WinHex将原有
数据
包认证
数据
部分末尾加0直至达到0x200字节,懒得再对代码做较大修改) V2.3.0 版 1、更改了部分界面,使得借用同学账号或者使用临时账号更方便。 2、更改了
数据
包生成方法,将其大小不再设为定值,使得有效利用率更高,通用性也更强。 3、更改了网卡保存方法,改保存索引为保存网卡名,解决网卡变化带来的麻烦。 3、更个性化的Logo图片设置(图片Logo.bmp 配置格式:Caption=标题 LinkURL=网址 LinkTip=提示)。 4、参数保存在ini
文件
而不是注册表中。 V2.2.4 版 1、注销时自动退出,这样再认证时就不会出现找不到服务器的情况了。 V2.2.3 版 1、删了两行问题代码以更兼容DHCP认证。 V2.2.1 版、V2.2.2 版 1、DHCP方式
中加
了个“二次认证”的选项以更兼容DHCP认证。 V2.2 版 1、加入了直接获取用户名与密码的功能,多数情况下安装好后不用另外输入用户名和密码就可开始认证。 V2.1 版 1、对客户端校验算法做了改进,使之通用于锐捷所有版本; 2、对DHCP功能做了改动,条件所限,无法验证是否有改进。 V2.0 版 1、审视了大部分代码,增加了客户端校验和DHCP功能; 2、加入了自定义
数据
包功能,使得客户端校验兼容性更好; 3、简化了Alog()、Blog()两个算法,使之看起来更直观。 V1.0 版 以Mento Supplicant V3.8为基础修改而成,较该版本有以下特点: 1、托盘图标在explorer重启后会重建; 3、系统消息以气球消息形式提示。
windows下可编译linux 用insight+bochs源码级调试
编译过程: 1). 解压后默认的
文件
夹位置是在D:\Linux-0.11,如果你不是将
文件
解压到该目录下, 你要修改MinGW32目录下的MinGW32.bat
文件
,将里面的PATH指向MinGW32的bin目录. 2). 打开Linux-0.11目录,双击MinGW32.bat快捷方式,打开控制台. 3). make 一下,生成1.44M的Boot.img软盘镜像,要清除编译结果请"make clean" 4). 如果安装了bochs,直接双击bochsrc.bxrc即可运行Linux-0.11了. 5). 也可用其它虚拟机加载Boot.img后运行,如果出现Kernel panic,请把虚拟机里的硬盘删了 6). 在出现Insert root floppy and press ENTER以后,将rootimage-0.11.img载入虚拟软驱,回车 这就是能在windows环境下编译的Linux 0.11了,不是在Cygwin,也不是在虚拟机里,而是使用MinGW. 下面是在Windows下编译Linux 0.11会遇到的问题和对原
文件
作的修改: 1.赵炯博士已经将汇编程序中引用的C变量(包括嵌入汇编的C变量)的下划线去掉了,但MinGW的gcc可能是为了与其它Windows下的编译器保持兼容,并不能识别这些不带下划线的C变量,因而还得把原先已经在汇编程序中去掉下划线的C变量加上下划线,同时也要把被C程序引用的汇编程序中的变量加上下划线. 2.MinGW中不带as86编译器,因而把boot目录下原先用as86编译的bootsect.s和setup.s两个程序修改成能用nasm编译的程序.并且更名为bootsect.asm和setup.asm. 3.在Makefile作的主要修改: 在LDFLAGS
中加
了--image-base 0x0000 将elf_i386改成i386pe 将cd 与 make 之间的;改成&,如cd kernel ; make 改成cd kernel & make MinGW中没有sync这个程序,可以把它注释掉,更简单的办法是写一个sync.c,这个sync.c只包含一个空的main函数,编译成sync.
exe
因为类似的原因,make dep会出错 4.生成的system
文件
是PE格式的(PE是Portable
Exe
cutable的简称),这是windows下的可执行
文件
的格式,显然是不能直接执行的,必须加以转化.我实现了通过两种方式加以转化. 1)写一个程序Trans.cpp将system.
exe
里的代码和
数据
从PE
文件
里解析出来,生成一个system.bin
文件
,这个
文件
是能被setup模块直接加载的.我已经将这个程序放在了Linux-0.11的tools目录下,要微软的编译器编译. 2)自己写一个PE Loader,这种方式比较麻烦,但是想想自己也能做一个PE Loader,还是满有成就感的,尽管这是一个最简单的Loader.代码是加在Linux-0.11-With-PE-Loader\boot目录下的setup.asm
文件
里,里面有详细的注释. 5.对tools下的build.c作了修改,使其能生成可引导的1.44M的软盘镜像
文件
Boot.img 6.在Link的过程中,init目录下的main.c会出现以下错误: boot/head.o(.text+0x540c):fake: undefined reference to `_main' init/main.o(.text+0x16f):main.c: undefined reference to `_alloca' init/main.o(.text+0x174):main.c: undefined reference to `__main' make: *** [tools/system.
exe
] Error 1 第一个和最后一个错误还好理解,但中间那个错误那就莫明其妙了,因为Linux 0.11根本没有这个函数,在gcc的编译选项里也有-nostdinc .有一个解释是main函数不是一个普通的函数,MinGW gcc会对它作特殊的处理.解决的办法其实也很简单,把main.c下面的main函数改名为_main,或者是干脆把它改成另外一个函数,就改成start吧.记得把head.s里的_main也改了. 在最后,要感谢《自己动手写操作系统》的作者于渊,其实我也是先将原先只能在Linux下编译的书里源代码用MinGW移植到Windows下编译的过程中才试着在Windows下编译Linux 0.11源代码的,有了在Windows下编译Linux 0.11源代码的经验,移植高版本的源代码,像0.12,0.95,0.96等等版本应该不会有太大的麻烦了。 也要感谢Linux内核完全注释的作者赵炯博士,是他拉接了操作系统与操作系统爱好者的距离. 最后,我也非常想和操作系统爱好者们共同交流心得体会,也希望能多认识一些朋友. 我的网名:flyfish 我的QQ:785606288 E-mail:I2CBus@126.com 另外,要转载请保持本
文件
的完整性,请尊重别人的劳动果实. 修改日志: 08/3/29 修改了一下Makefile,旧的Makefile在某些
文件
更新后还会重新编译。 修改了Trans.cpp中的一个dug,该dug在translate MinGW gcc编译的程序时可能会出错。用MinGW gcc 编译的程序的VirtualAddress的形式可能是0xFFC1000这样的形式,其实0x1000才是它的VirtualAddress 08/4/2 修改了下MinGW32.bat,现在已经不用重设路径了。 08/4/4 Trans.cpp还是有错,如果VirtualAddress>0xffff,那么生成的system.bin就错了,bochs调试时会一直重启。 权宜之计,把0xffff再改成0x3ffff,这样VirtualAddress就不能大于0x3ffff,不知谁有更好的解决方法, 08/4/4 实现了gdb+bochs源码级调试linux 0.11 08/4/6 添加了insight,可以在GUI界面里源码调试内核了
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章