Project1

标题: 召唤一只比较精通C语言的触手…… [打印本页]

作者: fux2    时间: 2012-3-29 12:51
标题: 召唤一只比较精通C语言的触手……
本帖最后由 fux2 于 2012-3-29 15:33 编辑

由于咱这里没学过C语言,只能看书照着写了一点代码,但是输出有点小问题,麻烦各位帮忙看一下。
通过反汇编咱这里得知了rgss3a文件名的算法,但是输出的时候会输出几个诡异的字符,不知道原因为何。
拜谢!
(数据部分解密就不公开了谢谢合作。)

C 代码复制
  1. #include<stdio.h>
  2. #include<conio.h>
  3. void main()
  4. {
  5.         FILE *rgss3a;
  6.         int point=0,rsize=0;
  7.         int key,magickey,i;
  8.         int filehead[4];
  9.         int *s;
  10.         char *cname;
  11.         if((rgss3a = fopen("Game.rgss3a","r"))==NULL)
  12.         {
  13.                 printf("当前目录找不到Game.rgss3a文件.\n");
  14.         }else{
  15.                 point=8;
  16.                 fseek(rgss3a,point,0);
  17.                 fread(&key,4,1,rgss3a);
  18.                 magickey = key*9+3;
  19.                 point += 4;
  20. start:
  21.                 for(i=0;i<4;i++)
  22.                 {
  23.                         fseek(rgss3a,point,0);
  24.                         fread(&filehead[i],4,1,rgss3a);
  25.                         filehead[i] = filehead[i]^magickey;
  26.                         point += 4;
  27.                 }
  28.                 if(filehead[0] != 0)
  29.                 {
  30.                         rsize = filehead[3]%4==0?filehead[3]/4:filehead[3]/4+1;
  31.                         s = new int[rsize];
  32.                         cname = (char*)s;
  33.                         for(i=0;i<rsize;i++)
  34.                         {
  35.                                 fseek(rgss3a,point+i*4,0);
  36.                                 fread(&s[i],rsize,1,rgss3a);
  37.                                 s[i]=s[i]^magickey;
  38.  
  39.                         }
  40.                         cname[filehead[3]] = 0x0;
  41.                         printf("%s\n",cname);
  42.                         point += filehead[3];
  43.                         goto start;
  44.                 }
  45.                 getch();
  46.         }
  47. }

作者: 灼眼的夏娜    时间: 2012-3-29 12:51
fopen("Game.rgss3a","r")

"r" to "rb"
作者: 夏侬    时间: 2012-3-29 13:52
对C无爱,坐等LZ的问题解决。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1