这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。
! P$ S5 [4 T! r7 g/ D2 y. \- ~+ V* r8 L
懂的参考修改完善出工具吧
3 v3 }% _5 v, \$ I$ h3 ^) u
' o, }2 N/ c6 ~8 O: o- o Y$ Q% q3 r- E. A
2 L3 ~& _& K" l0 A; ~#include<stdio.h>- k( b+ ^2 o2 C$ j
#include<windows.h>! `4 D4 w9 S$ Y" J/ V. Q
main()
6 z1 g0 h w2 q" q9 t{
$ h% U4 B* G3 C0 I$ k2 b3 p9 WFILE *fp,*fp2;) Z5 g* m! e$ J' a# G B
int i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置0 o1 S( g$ I- U6 K3 F" ?' c. x0 I
byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2
+ j0 j: Q( a! E% e//和buffer3
2 [) W+ ^2 E, R //一组,buffer指针会变动,buffer制作永远指向; V0 O. Y! v; {7 ~
//buffer的第一个字节位置,buffer2和buffer3同样道
4 h' v! \5 R3 O/ C //理# r6 Y- r2 @: j" d5 Y$ T
buffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置% x8 n' ]8 _+ g1 Z- M8 t3 c0 h
buffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置
0 p T% w- A/ l4 r$ P, \' p2 Zfp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件 T- w7 f. u% k/ ?( b* r, \
buffer3=buffer2; //buffer3保存buffer2初始时的地址" I# y+ k" q# e
for (i=0;i<=255;i++)6 v; h- O4 s& d+ T6 f+ Q% J) T+ }! j
{- {: g. E5 [" k
buffer1=buffer; //buffer1保存buffer初始时的地址/ q, s" @9 w9 P! Z1 d c7 Y
fseek(fp, 0, 0); //重定位到animation.cfg文件的开头
0 V* P* L6 k$ R: A( Tfread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer
; o( u9 \" z6 n8 sfor(j=0;j<16;j++)
* b( C2 f; R4 q0 u{( q; Z1 H( k% r, n& y
*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间) |3 a; a p$ l$ o- S$ ]
//任一个数值异或,结果保存在buffer1所指的位置上4 `1 d' g7 _) ?
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置
5 p) D* ~6 f$ z: lbuffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
( B# F8 N) o# S+ G: obuffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
}8 D/ \. `4 g5 a}4 O" I1 |* d9 v# i# ~0 a' T
}
5 O- G7 p" Z$ \2 p: Q1 Pfp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入
/ @" g# i, z9 m7 X5 V9 P0 @6 Lfwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
- C- f) l+ N& b [% M% } //buffer2初始时的地址所指的数据,用二进制方式写入
/ K. w/ G$ K+ ]1 j6 M9 H //16×256字节
2 C* p6 E! ?; F# r, X! \/ |fclose(fp2); //关闭文件句柄
/ J% Q( T" d8 I* o2 m( Zfclose(fp);" X8 o2 T, h/ e# I) D1 J+ ]0 N
+ I1 z& e3 F9 l
}) {5 ]' y: H. {) [
+ b& r4 u1 t; b* C' Q3 P+ b
( ]* g8 Y q; F+ X' bhttp://book.51cto.com/art/200903/112751.htm |