📄 tbin.cpp
字号:
#include <windows.h>
#include <stdio.h>
#include "tkeytab.h"
char passwd[30];
char randm_pwd[30];
int get_value(int ch,int cv)
{
int i;
ch&=0xff;
cv&=0xff;
for (i=0;i<256;i++) {
if (keytab[ch][i]==cv)
break;
}
return i;
}
int Fjm(char *name)
{
FILE *fpin,*fpout;
int i,j;
int jm_len,addr,addr2,chr,value;
//打开文件
memset(passwd,0xff,30);
if ((fpin=fopen(name,"rb"))==NULL) return 0;
jm_len=fgetc(fpin);
for (i=0;i<jm_len;i++)
randm_pwd[i]=(char)fgetc(fpin);
addr=fgetc(fpin);
addr+=fgetc(fpin)*256+78;
addr2=addr+jm_len+3;
fseek (fpin,addr2,SEEK_SET);
for (i=0;i<jm_len;i++) {
chr=fgetc(fpin)^randm_pwd[i];
passwd[i]=(char)chr;
}
if (!GetTempPath(250,name)) {
fclose(fpin);
return 0;
}
strcat(name,"\\tmpfile");
if ((fpout=fopen(name,"wb"))==NULL) {
fclose(fpin);
return 0;
}
//加密区
fseek(fpin,jm_len+3,SEEK_SET);
for (j=0,i=0;j<addr;j++,i++)
{
if (i==jm_len) i=0;
value=(unsigned)passwd[i];
fread(randm_pwd,1,1,fpin);
chr=randm_pwd[0];
randm_pwd[0]=(unsigned)get_value(value,chr);
if (j>=78) fwrite(randm_pwd,1,1,fpout);
}
//保留区
for (;j<addr+jm_len;j++)
{
fread(randm_pwd,1,1,fpin);
fwrite(randm_pwd,1,1,fpout);
}
//加密区
fread(randm_pwd,1,1,fpin);
chr=randm_pwd[0];
for (;!feof(fpin);j++,i++)
{
if (i==jm_len) i=0;
value=(unsigned)passwd[i];
randm_pwd[0]=(unsigned)get_value(value,chr);
fwrite(randm_pwd,1,1,fpout);
fread(randm_pwd,1,1,fpin);
chr=randm_pwd[0];
}
fclose(fpin);
fclose(fpout);
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -