这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。- b0 A) G/ W9 y+ _
2 l9 n3 v9 ^* b; R: @1 X
懂的参考修改完善出工具吧: O6 r2 }4 `8 B: U8 U5 ]6 e
: P( {) d, C) Z6 A, g5 l, K1 M4 c6 k. n2 k
* Y v: N% `* _; Y H
#include<stdio.h>
+ X" Q* A% \+ {& V6 h2 u#include<windows.h>" Z6 H* s! w' S% J) ?0 Z, Y
main()
3 Q: F: P% D- S) E{& {! M# L h6 L0 ^+ e
FILE *fp,*fp2;
' I4 w0 ?+ U: rint i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置, R- V" t6 V- i% m4 D
byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2
9 h3 L3 h _1 z3 s, T+ D) y//和buffer3
, b+ l& j. k2 J8 d+ o% f4 T6 M //一组,buffer指针会变动,buffer制作永远指向
$ v( ^: @9 B" I6 E( x //buffer的第一个字节位置,buffer2和buffer3同样道$ O* b9 c9 q; S, |- t- D
//理
+ K1 l; Q: x0 y& U4 S+ J; g7 x: Vbuffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置% @) s1 \# h5 T7 N; X
buffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置
6 R( L9 k& H5 H1 Jfp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件8 e/ Z4 e( K' s- V# ~& p: {& R: c
buffer3=buffer2; //buffer3保存buffer2初始时的地址
% i; B+ l5 N) v/ U$ x( N0 gfor (i=0;i<=255;i++)* X1 I, | |5 h# {. o7 V o
{8 e& s4 W$ s: k$ u
buffer1=buffer; //buffer1保存buffer初始时的地址. ]" g5 R0 ~& N
fseek(fp, 0, 0); //重定位到animation.cfg文件的开头& u& y5 _# q( Q
fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer# }7 ]( w$ |: j6 d
for(j=0;j<16;j++)
, U9 p" o+ q% d. G# f{. @8 |9 b0 K1 y# n% ?# Y: j. X
*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间
# O9 S$ D! j! ^! c, i //任一个数值异或,结果保存在buffer1所指的位置上
& S9 I- U( b0 E$ b*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置6 ^0 l7 c4 f! R+ R' J
buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
, _' L; W; _& {% Y- N' Nbuffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
( j1 ~5 |% h3 v i; P* @) N}0 a6 H' B; e. m! Q( A
}! L# @- Y/ u' ~; Q
fp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入7 H6 @. T5 w) p, I, v. y1 L! y
fwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将 D. x" T. V. L& {
//buffer2初始时的地址所指的数据,用二进制方式写入& F1 v/ l* ^5 `& n: f
//16×256字节; g, d: |7 V7 C5 E, b0 O2 P
fclose(fp2); //关闭文件句柄
# h8 Z5 R6 k' b4 k* lfclose(fp);. ^0 j' I' ~: B0 m2 G* m+ W
0 k( k6 @6 k! P7 V; [ E}
# s$ _" _; O) `4 m2 v" m2 `0 m' C+ T. P! C1 Q6 f7 |
0 @+ s! x& F( l) V/ _http://book.51cto.com/art/200903/112751.htm |