这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。
' x, {/ C' e0 }8 }
, O+ U) m! V0 s7 l懂的参考修改完善出工具吧! ], o- ^: a7 E L( J
8 i# g1 g' m" ^& i [
* D0 }; f6 q, D* g. Y4 y, l3 l
* G" u6 b7 b# P/ @: g) F$ y) w#include<stdio.h>" [" ~4 f/ J1 b/ b9 t! [
#include<windows.h>
: t6 V. T: n0 _* Cmain()! f- G6 g. m. l/ x$ j
{
; |6 l# F0 k$ P' v7 K% EFILE *fp,*fp2;
6 K. G; g6 z2 H3 A# Aint i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置
9 u) |$ ]! o' x# Lbyte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2
]) [" K. O; G. ~0 G) l7 _9 I//和buffer3" } P5 D4 ^' B9 J$ d: a
//一组,buffer指针会变动,buffer制作永远指向! t9 C# ~+ R7 S' I7 P: x' D
//buffer的第一个字节位置,buffer2和buffer3同样道6 V) B$ C2 k/ r6 v
//理
& a7 _( s* _; c" ibuffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置
) y _) E9 ~9 R3 Ebuffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置9 ?. M1 S5 I/ e! D& V8 b7 N# q
fp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件- Q8 k& y9 r4 u
buffer3=buffer2; //buffer3保存buffer2初始时的地址& R5 l" [3 |+ D1 [# e, x
for (i=0;i<=255;i++)& D4 b- y. \+ z
{
) \/ Y0 {. B1 @buffer1=buffer; //buffer1保存buffer初始时的地址: b3 J7 k0 e- z+ }
fseek(fp, 0, 0); //重定位到animation.cfg文件的开头
+ v( b% ? z$ E. l$ hfread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer
5 u& V5 }! _* }. [2 }5 w. J _/ A2 xfor(j=0;j<16;j++)
3 d- \+ `8 j$ h+ A) i3 R{
/ |4 E) i; L: q8 k' D*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间+ e) a, A* Z8 a5 t' P% h" v1 d* c
//任一个数值异或,结果保存在buffer1所指的位置上% G# I: _" j! K6 e, @# m }
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置 R$ y$ C+ w# i! C
buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
; W8 G0 p, F1 x# `; \- c# cbuffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据% h1 k, k1 C* M! Z, B% i
}
3 Q8 T+ o+ ~7 Y$ I2 s9 f}
/ W6 k0 G2 ]9 Pfp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入
+ O: e# J0 y: kfwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
9 {$ \0 r) M( v. V) w8 g //buffer2初始时的地址所指的数据,用二进制方式写入9 H8 {3 O! }2 K2 y) R) y5 Z# H
//16×256字节
. G6 b, K/ k* @) F4 Xfclose(fp2); //关闭文件句柄( J. m6 o1 k: y7 x3 M, a5 x
fclose(fp);
% e- v7 K: l/ g9 H, S9 s. T
6 K2 C* L6 k: p! N9 z9 g+ u) x3 P# ^; K}1 o; c6 b) ?; e/ u |' r& G
2 t) |) V( F D% E! f+ t7 h' S& e
7 d& d+ n' c. }6 B1 M' ^http://book.51cto.com/art/200903/112751.htm |