这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。
M9 u; |5 p3 L+ E" }* ^. Z7 r# d. j) I9 d
懂的参考修改完善出工具吧
: E( q; y' q6 h# N4 X9 O; v; m9 I5 n7 D
% n5 O3 |* M0 j1 g8 z5 W- f- ?$ Q. d' k
#include<stdio.h>
. R z: D: a9 i: A! |# {#include<windows.h>
6 g& Q$ o$ m3 k# [main()
4 u$ [0 u0 h& ~% e5 Q{3 J" @, p+ \9 C
FILE *fp,*fp2;( \$ o' `4 O: j+ c5 G
int i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置
) A) Y. S. Y, U' }% `2 a& t# ]byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2% S8 X( E8 m- x5 B- P' Z
//和buffer39 W' Y( S% i5 x- z
//一组,buffer指针会变动,buffer制作永远指向
# M! W2 f. ^/ l& K2 E1 }: }, t //buffer的第一个字节位置,buffer2和buffer3同样道
# S1 \ U3 A: \ //理5 K. d# B1 N! c6 i7 W) O
buffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置
5 p2 |1 a9 A( ` Xbuffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置
1 }3 @* H7 {+ [5 p; ~7 Nfp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件( V. D4 K7 j; g! r9 p: r
buffer3=buffer2; //buffer3保存buffer2初始时的地址! u+ m: n3 i+ L( R% x+ G4 I
for (i=0;i<=255;i++)
7 T1 U+ r2 H: y" A{) `% @9 q _0 V: p
buffer1=buffer; //buffer1保存buffer初始时的地址* O3 Y8 ^ [2 G4 X- K7 q
fseek(fp, 0, 0); //重定位到animation.cfg文件的开头
S$ K, B. U9 q3 {6 R0 W: i" ?* ^fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer3 r/ r6 c5 ~4 g) K5 l( X
for(j=0;j<16;j++)
5 `: r& ]7 v0 C, j) H5 \3 }5 Y- H{
5 b+ [2 N. G7 r! U% W1 S* x& s*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间
) {, B2 e7 S! E' A //任一个数值异或,结果保存在buffer1所指的位置上- c p1 Q+ q, H, E, T' k
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置
0 i8 P) }' q) E" xbuffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
- l C2 Q6 y4 ], o% ^buffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据! T2 e: g. Y( R! _
}* W- B) z+ O9 C2 m4 C8 S/ O
}
9 T& ]1 \! S+ S" g" Jfp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入
" M! |' y6 I, t) H+ ?fwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
/ N, [8 k l0 V }, t! l/ Q //buffer2初始时的地址所指的数据,用二进制方式写入/ ~4 o2 |, a, ?4 A; I8 c
//16×256字节
% g3 m1 x. }, s7 ]fclose(fp2); //关闭文件句柄* F" B6 x6 Y+ ?1 r4 ^& {# ~2 N+ P% L
fclose(fp);
. n* a# W/ ?4 J1 z2 l8 q7 R7 _8 S# v. G& `
}+ m& p" ^" u" r/ o% M
/ s f( n, M# j0 F+ }; X; Z, @1 Y2 l- R K) P: B8 h
http://book.51cto.com/art/200903/112751.htm |