这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。1 V& a# V5 L$ s: s+ o
2 ]" t; e3 G6 _4 K, H5 l' m
懂的参考修改完善出工具吧
0 O' h4 t6 t, v; c
: z3 P( D* D' N0 i
0 x0 ?( w' I5 P$ I& m# c% ?5 L+ [) V/ P) q% P8 F+ M6 }
#include<stdio.h>
% c$ L( \. ~4 G0 v# m#include<windows.h>
+ D, x# c( h9 s( ymain(). a7 D0 u! r: p3 \
{
1 `* m* J1 b$ D! w7 B5 [FILE *fp,*fp2;* b- C: Q6 j+ g
int i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置
6 p3 x& z- s6 Y: @, cbyte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2
2 ^0 A" @" T; g$ \5 G0 `2 Q//和buffer30 @& N+ v) [! {
//一组,buffer指针会变动,buffer制作永远指向6 q$ m. @! `+ x# A6 A f; N! _5 X
//buffer的第一个字节位置,buffer2和buffer3同样道, K. x% m7 o& f; g+ @
//理
" X, X- C+ Q$ H- k+ Xbuffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置
7 V) n4 a, ^ C" }' gbuffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置9 K- S8 i% ?: S0 C- m
fp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件9 y( ?6 A0 I; Z- x7 `
buffer3=buffer2; //buffer3保存buffer2初始时的地址7 x& V& s" K# Y. }2 E
for (i=0;i<=255;i++)
, q. y' I' {) B* {% b4 p$ ]" @{3 b- R/ j$ B8 h; R0 ?* ^# P: }* l
buffer1=buffer; //buffer1保存buffer初始时的地址
) A- P7 _7 }! s3 Z/ Ofseek(fp, 0, 0); //重定位到animation.cfg文件的开头4 W; ~. a# d+ _ r7 ~+ P
fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer
0 U" B5 ]5 o9 ]$ r5 V' u8 N4 a, Qfor(j=0;j<16;j++)" q. V: v# R I( L. Y4 y; E& ^
{0 G" q6 V( [* q! }2 R" ]3 l
*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间( W! n) i9 F8 [! M8 X% | R: h
//任一个数值异或,结果保存在buffer1所指的位置上, L% b1 g" j5 b0 `
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置! j. G, E+ x9 H, y7 y. o& h
buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
( `- _: H2 L, n: L! u+ ^buffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
9 F) s( d" ~, P% c2 w}: \; Z* f# {, }% ~' B; g+ D
}
& K; z. G9 ~& |$ d. u+ x! _fp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入
3 b& r$ a# E9 P. Vfwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将2 u4 \. s8 u6 w. c, ~
//buffer2初始时的地址所指的数据,用二进制方式写入
& n$ Y& B; E. b! X1 K% C //16×256字节
) \; {$ J' Y( o p6 P4 vfclose(fp2); //关闭文件句柄% D/ R) d% F: Z. D. H2 Y
fclose(fp);4 w' T$ j% X* j- L$ }2 D! z
) _+ d' P+ i. U1 ?/ Z, W9 B
}, x) A( K/ S# I4 M* d. l& l
8 M( O2 V& J0 q4 S1 M# W. V
' w" ?3 q, L2 F2 Khttp://book.51cto.com/art/200903/112751.htm |