这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。6 Q9 u3 M" q+ y2 n6 e, l8 y6 ?. ^
2 V I4 M* i& S3 E' u5 r5 y
懂的参考修改完善出工具吧, p R8 a U/ X! }
! l. ?/ T% ?) l6 l
' {+ b: u, K, S8 ~" z$ b6 f/ A
$ [$ ?3 X% P D2 P- s#include<stdio.h>
/ i0 B, ^* l6 e$ Q#include<windows.h>4 u) R+ }% D, f
main()/ P% x$ d' _) V
{
: I, }0 E$ t: O8 WFILE *fp,*fp2;$ q3 }! y7 S3 x4 e1 K
int i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置 ]3 V9 A; g: ]! L
byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2: H' }& a5 R' q# k! t7 x1 E+ Z8 u
//和buffer3! ?8 w, ^# x( e) O4 c2 N
//一组,buffer指针会变动,buffer制作永远指向
0 B8 }$ y9 W+ A: o" s8 g' R; j! u //buffer的第一个字节位置,buffer2和buffer3同样道
# v( {* D6 T t$ ] //理
; ]* L3 m, l! a/ X. U5 Z7 ybuffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置. t$ e }) z* G2 K6 D
buffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置5 k; O$ v6 N: g4 i% C' ]9 f
fp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件8 ~( P( p1 K/ B* ~- `, [
buffer3=buffer2; //buffer3保存buffer2初始时的地址
6 a+ \% X# }7 D# a6 _for (i=0;i<=255;i++)( ^% M4 d9 d% o" f& [
{
7 o7 b: D$ g# d0 O o& x9 Tbuffer1=buffer; //buffer1保存buffer初始时的地址
; e& p4 T; n/ Afseek(fp, 0, 0); //重定位到animation.cfg文件的开头
- c+ i u2 [6 k9 p/ A2 @fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer
M1 o( K: m6 v' Ffor(j=0;j<16;j++)" Q( s7 H; C k" v, R1 O
{
0 O8 L' p& v$ Q*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间; i- T0 |! R f
//任一个数值异或,结果保存在buffer1所指的位置上+ }! \% ]4 }' W# ?8 s
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置4 H9 r0 c9 E9 x/ B) [3 ~
buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据1 D7 M% W1 z2 x* w
buffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
9 \# ?5 S( @8 Y: j5 Q4 M4 _8 y& ~2 p}
- v( S/ |" _) |% v4 ^4 {5 c7 r}- C0 Q$ Z. U7 i- ~( A: D
fp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入
7 G' X( i: T1 k. W' Sfwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将# o0 j% j( {. p6 e( I% P
//buffer2初始时的地址所指的数据,用二进制方式写入/ Q/ E( i$ J# H7 f: f0 l
//16×256字节
, W# r) T: \4 f; D9 r. Ufclose(fp2); //关闭文件句柄
) Q* \' p" i+ F+ a0 p- g$ x' ]fclose(fp);0 |; r# e* d4 E+ K
2 S* \3 y9 V7 i i}
( n! q) J" c/ l% o } J
. @3 y/ n) x' U1 L1 Z! T
/ S v6 I- d9 r+ F% S9 g# yhttp://book.51cto.com/art/200903/112751.htm |