查看: 3931|回复: 2

[有事请教] 召唤一只比较精通C语言的触手……

[复制链接]

老黄鸡

梦石
4
星屑
45800
在线时间
7956 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2012-3-29 12:51:19 | 显示全部楼层 |阅读模式
悬赏1星屑已解决
本帖最后由 fux2 于 2012-3-29 15:33 编辑

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

[pre lang="C" line="1"]#include<stdio.h>
#include<conio.h>
void main()
{
        FILE *rgss3a;
        int point=0,rsize=0;
        int key,magickey,i;
        int filehead[4];
        int *s;
        char *cname;
        if((rgss3a = fopen("Game.rgss3a","r"))==NULL)
        {
                printf("当前目录找不到Game.rgss3a文件.\n");
        }else{
                point=8;
                fseek(rgss3a,point,0);
                fread(&key,4,1,rgss3a);
                magickey = key*9+3;
                point += 4;
start:
                for(i=0;i<4;i++)
                {
                        fseek(rgss3a,point,0);
                        fread(&filehead,4,1,rgss3a);
                        filehead = filehead^magickey;
                        point += 4;
                }
                if(filehead[0] != 0)
                {
                        rsize = filehead[3]%4==0?filehead[3]/4:filehead[3]/4+1;
                        s = new int[rsize];
                        cname = (char*)s;
                        for(i=0;i<rsize;i++)
                        {
                                fseek(rgss3a,point+i*4,0);
                                fread(&s,rsize,1,rgss3a);
                                s=s^magickey;
                               
                        }
                        cname[filehead[3]] = 0x0;
                        printf("%s\n",cname);
                        point += filehead[3];
                        goto start;
                }
                getch();
        }
}[/pre]

最佳答案

查看完整内容

fopen("Game.rgss3a","r") "r" to "rb"

点评

"r" to "rb"  发表于 2012-3-29 17:09
[url=home.php?mod=space&username=orzfly]@orzfly[/url][url=home.php?mod=space&username=禾西]@禾西[/url]  发表于 2012-3-29 13:18
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托

炎发灼眼的讨伐

梦石
0
星屑
50
在线时间
1707 小时
注册时间
2007-8-4
回帖
894
发表于 2012-3-29 12:51:20 | 显示全部楼层
fopen("Game.rgss3a","r")

"r" to "rb"
RMXP&amp;RMVX通用Web化完成- -|||
回复

使用道具 举报

梦石
0
星屑
43
在线时间
233 小时
注册时间
2012-3-4
回帖
945
发表于 2012-3-29 13:52:48 | 显示全部楼层
对C无爱,坐等LZ的问题解决。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部