首页
社区
课程
招聘
[原创]好久没来了,回来看看大家(带来一篇烂文)
发表于: 2006-9-28 08:46 3899

[原创]好久没来了,回来看看大家(带来一篇烂文)

2006-9-28 08:46
3899
这段时间由硬件转网络工程了,(貌似还是和硬件接触的多)
好久没发文章,先来一篇菜文..(别说我骗贴)
文章没什么高深技术,只希望对需要的人有帮助....
如果你懂这个就飘过,如果不懂,可以停留一、二分钟浏览一下

最近看一个游戏引擎(2D方面的),其实以前就研究过,只是他现在更新到16版了.
有对2D游戏感兴趣的可以访问官网:cf1K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4u0W2L8r3W2K6K9r3N6S2L8h3g2K6i4K6u0W2j5$3!0E0
他已经开放源代码

先说一段前话,记得以前14版时,屏蔽run-time logo,只需要在系统初始化之前
hge->System_Initiate()
加下面一段代码
System_SetState((hgeState)14, 0xFACE0FF)
就可以屏蔽logo,但现在的16版已经不能这样做了...
这个logo是版权logo..估计是作者更新了部分代码...但由于他开源..也就方便研究了..
在源代码中,发现有个数组hgelogo[],头两个字节是0x5089,0x474E...
虽然根据上下文来看也能看出他是一个图片文件..但对于类型当时就不是很清楚了
后来在支持论坛搜索了一下相关信息还有放了一篇求助贴,最后隐约想起来,这个是PNG文件的文件头,这才让我想起了一件事,当是在程序员(游戏创造)杂志中看到过一篇关于PNG文件格式的说明...
如果你把一个*.png图片文件,另存为*.bin,用下面这段程序,你也能建立自己的16进制图片信息....他将保存到一个logo.h中
#include <stdio.h> 

void main() 
{ 
  unsigned short c; 
  unsigned int n=0; 
  FILE *fin =fopen("data.bin","rb"); 
  FILE *fout=fopen("logo.h" ,"wb"); 
  if(!fin||!fout) {printf("not found data.bin!\n");return;} 
  fprintf(fout,"unsigned short logo[]={\r\n"); 
  while(1) 
  { 
     fread(&c, sizeof(unsigned short), 1,fin); 
     if(feof(fin)) break; 
     fprintf(fout,"0x%04X,",c); 
     if(++n%16==0) fprintf(fout,"\r\n"); 
  } 
  fseek(fout,-1,SEEK_CUR); 
  fprintf(fout,"\r\n};\r\n"); 
  fclose(fout); 
  fclose(fin); 
}

代码很容易看懂,在此就不做解释了...
算是可以起到素材加密隐藏的作用吧
其他详细请见a33K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3I4A6j5Y4m8F1k6#2)9J5k6h3!0J5k6#2)9J5c8R3`.`.

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 440
活跃值: (922)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
2
信息隐藏
2006-9-28 16:23
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
2006-9-28 19:36
0
雪    币: 253
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
晕,楼上的,居然会有这样的事....
不过这也不奇怪,呵呵..
这种方法用的挺多的...
2006-9-28 22:15
0
游客
登录 | 注册 方可回帖
返回