这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。" _- A) M7 F% {# P
9 H, \/ c3 n8 O% L! a% ]懂的参考修改完善出工具吧
6 \7 L' ?8 l5 q% z, q7 L6 b- j" P U+ t9 p6 W5 D; p
# ]: y7 F h% @0 j& b2 M" i; b
5 }1 D; M1 B2 C, Z" g) h9 I+ O
#include<stdio.h>1 g" w3 n! H+ `4 b, Q
#include<windows.h>) u% D* S U; H8 T2 y, G
main()7 R9 ^- p) c) I. e" s2 k
{: @- b0 Y3 I% T
FILE *fp,*fp2;
" T% l C$ a, G) p" ?; {int i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置
8 s% V& A6 E; Tbyte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer24 ^3 m2 q& D) ~' D% d
//和buffer3
$ t1 e8 M0 \6 P( T% m. Z) \ //一组,buffer指针会变动,buffer制作永远指向
. ^$ ?7 H0 a3 w- y- n7 _/ x5 ? //buffer的第一个字节位置,buffer2和buffer3同样道- Q$ y3 Y6 r9 x
//理
0 k2 @$ y5 s* z! M" \) ibuffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置5 `* ~7 Z9 n- _5 G& |1 b
buffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置, Y1 y) Y& ^ P
fp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件' M& ~& p% ^9 _/ s% c
buffer3=buffer2; //buffer3保存buffer2初始时的地址
* |) M2 h* R8 v) ^" H. x. v2 Mfor (i=0;i<=255;i++), ~ e6 r! D+ A- @) i& H1 I
{8 u/ X2 \+ E, y8 K! n* P- Y. m3 p
buffer1=buffer; //buffer1保存buffer初始时的地址
/ T/ F1 g, ?( P1 Ufseek(fp, 0, 0); //重定位到animation.cfg文件的开头/ `4 n6 b# Z, W( e
fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer
2 L; q% X3 D7 Sfor(j=0;j<16;j++); m3 W7 i# f M+ j
{1 b m6 [: l7 \2 ^
*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间- N5 Q7 p; u; v1 b4 Y$ K" G
//任一个数值异或,结果保存在buffer1所指的位置上7 `5 U b' h4 f3 w$ M3 G3 p
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置
+ b8 {4 h E" V" `" R8 i! ?7 ]6 @buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据! x( G1 R) ?7 {5 C1 t9 M1 y
buffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
5 N5 v8 U$ ?, V0 r; k) E8 _}
4 `: C* c3 w8 @5 V}: e! }3 _. F+ B6 r% w7 ^
fp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入
8 T$ }, n& h6 a7 T6 {$ B$ K4 Jfwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
! I7 n, y. p% [# {8 {, h //buffer2初始时的地址所指的数据,用二进制方式写入3 v/ s0 c) Y, r" Y$ j4 W& u
//16×256字节
- K4 E2 L" d- L# Z( k" Qfclose(fp2); //关闭文件句柄$ p4 A5 M1 k/ B3 Z/ G5 E: R- w
fclose(fp);* j ~/ n# H V+ \) ]$ M
7 W4 [" N6 F+ f+ B
}
' h E( G6 N. m. b" {8 a" n/ l
& K! T: X: x+ E6 F% F9 w6 t& I4 d
http://book.51cto.com/art/200903/112751.htm |