这段时间由硬件转网络工程了,(貌似还是和硬件接触的多)
好久没发文章,先来一篇菜文..(别说我骗贴)
文章没什么高深技术,只希望对需要的人有帮助....
如果你懂这个就飘过,如果不懂,可以停留一、二分钟浏览一下
最近看一个游戏引擎(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日开班!