这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。
; `7 r1 ?3 J w3 L8 `2 k+ i0 c! g( Q0 h0 V
懂的参考修改完善出工具吧
9 y7 A6 P9 ]$ U, Q4 n; `0 x% q" o# Y% V$ z. b
0 F. c! S7 o! N5 [
: P* ?' p6 t, w. w m
#include<stdio.h> u* m* t. l' ~2 h4 d3 _- c8 a
#include<windows.h>6 l% S& |3 V* {
main()
, r+ f9 ^& n; k{
! k% p, v* ]9 v/ w2 o1 DFILE *fp,*fp2;
' h S- x, z3 e! Z6 Hint i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置8 U+ V4 p; L" d1 u
byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2
# u8 o% i5 i7 D: P/ S4 o3 Z//和buffer3
: R) r' @; n' ]' u //一组,buffer指针会变动,buffer制作永远指向
; `$ l# w: _# }- Y: X //buffer的第一个字节位置,buffer2和buffer3同样道* y* [, p; I) R& D9 n9 \1 m; k
//理
$ q0 s; |/ N+ w$ n% ]0 @buffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置$ u3 L v- F2 M8 W8 @" h
buffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置1 P) n3 U5 r; G) R( A
fp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件9 ]+ U; o+ S" v$ R9 {+ e- I
buffer3=buffer2; //buffer3保存buffer2初始时的地址6 e. S( ?; x. o
for (i=0;i<=255;i++)
1 H8 c+ [# v& w! i, }{
% R6 i5 G: ?+ Y' c9 S) y/ Pbuffer1=buffer; //buffer1保存buffer初始时的地址
/ \3 c9 Z; H( z! @9 l& afseek(fp, 0, 0); //重定位到animation.cfg文件的开头0 s6 D4 w) ^0 W. S
fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer
9 D1 X8 S( x% o4 F" y/ Tfor(j=0;j<16;j++)
' v% n% s8 u, d- A{( h9 K2 l% W" Q! p
*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间
. T! ` U' V5 f3 ~ //任一个数值异或,结果保存在buffer1所指的位置上7 l! e' t: W, {+ }
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置# I, |; M% E j4 O. J4 N- x5 W
buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
) E/ L7 A7 P# R; t) U. vbuffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
t) x- o2 Z2 ?, i3 `/ h}! O5 `2 Y% @3 @4 c9 m3 z) Q
}+ P$ L1 X- i4 {; C- I
fp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入
5 h! X. Q' I c1 efwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
; i) H1 V* k, n# A, X8 }) j //buffer2初始时的地址所指的数据,用二进制方式写入0 D, s5 u- m6 p. T' }. k! D( h: _
//16×256字节! z1 c( Q1 }2 X$ g. |; q
fclose(fp2); //关闭文件句柄
4 C. X+ Y) T8 B3 V0 u Ffclose(fp);" v2 F, s3 L x" V3 K+ W7 j" e# g
* b( T7 u; `" m6 d6 R4 ~4 y4 Q}
2 h# x7 z8 G5 l, j0 t* u- Q/ A
' z$ S# Y5 V) j8 f* ~
+ q2 r9 T R8 W: u9 [http://book.51cto.com/art/200903/112751.htm |