首页
社区
课程
招聘
[求助]求帮忙看下内存中的数组问题,
发表于: 2013-9-4 19:08 4590

[求助]求帮忙看下内存中的数组问题,

2013-9-4 19:08
4590
unsigned char dataDll[143360] = {
        0x00, 0x90, 0x5A, 0x4D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xFF,
        0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
        0x0E, 0xBA, 0x1F, 0x0E, 0xCD, 0x09, 0xB4, 0x00, 0x4C, 0x01, 0xB8, 0x21, 0x68, 0x54, 0x21, 0xCD,
        0x70, 0x20, 0x73, 0x69, 0x72, 0x67, 0x6F, 0x72, 0x63, 0x20, 0x6D, 0x61, 0x6F, 0x6E, 0x6E, 0x61,        

unsigned char* xxbuf = NULL;
        xxbuf=new unsigned char[143360];
        CopyMemory(xxbuf,dataDll,143360);
为什么我传入dataDll传参数不出错,如果传入xxbuf就出错了,
求科普。

比如我把dataDll的数组,xor 一下。然后写入文件,然后再从文件读取,再xor传入其它函数做参数的时候发现了这个问题,试了多少次找不到问题,实在不明白。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
什么叫传入dataDll 不出错。 传入xxbuf就出错了???

我感觉你就是读写文件出错了。 是不是又用了文本格式。
2013-9-4 19:29
0
雪    币: 110
活跃值: (527)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
用2进制文件写的,,为了验证不是我的读买文件出错,我又写了这样一段代码。
 
///dataDll是定义在头文件的数组
unsigned char dataDll[143360] = {
	0x00, 0x90, 0x5A, 0x4D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xFF, 
	0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00.............};

	unsigned char* xxbuf = NULL;
	xxbuf=(unsigned char*)malloc(143360);
	CopyMemory(xxbuf,dataDll,143360);
	Bit32(xxbuf,sizeof(xxbuf));
	Bit32(dataDll,sizeof(dataDll));
             MemoryLoadLibrary(xxbuf);
。这样写都出错了。
2013-9-4 19:47
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那什么叫xxubf 出错。 dataDll不出错? 你原贴中只在copymemory 中用到这两个参数。。并且是同时用的。
2013-9-5 09:22
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
另外。你可以在出错前的位置。使用类似于strcmp 的函数,去对比 两个数组的差异。 相信这个没什么难度。
2013-9-5 09:23
0
雪    币: 110
活跃值: (527)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
。。。是我自己的错,我Bit32解密的时候,自己写的函数,给忘了,传参的时候,一个是指针,一个是数组,在获得数据长度的时候都用了sizeof。结果导致指针的时候数据长度为4,,自己写的解密函数,没考虑有错这个情况,,也是经过调试多次,对比内存才发现这个问题,,无语了。。
2013-9-5 17:27
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
-0- sizeof...
2013-9-6 08:57
0
游客
登录 | 注册 方可回帖
返回
//