这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。
6 b8 D1 O p" C0 }$ y4 z
: n0 |2 U( H& [, @% m2 b& E懂的参考修改完善出工具吧
{0 `5 J( D' v7 e1 A4 _3 w F* ^$ u0 Y# ]0 b
3 N8 u* r8 y: D1 [3 s
! v: n# J7 \6 m, J) \" i
#include<stdio.h>; n6 [8 x$ K h; G/ j
#include<windows.h>
% h! q" G; L V5 W2 mmain()% V' ]+ c2 R/ x( A/ Z
{! w- w$ \1 i: E8 q
FILE *fp,*fp2;) z- @/ {' x+ e, @1 B
int i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置; r! o) A7 ?# k' N" w4 K
byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer26 q; D8 f0 v0 B. B3 f- m1 k" W+ w
//和buffer3
' [3 v# `% S$ ?0 z //一组,buffer指针会变动,buffer制作永远指向 Y/ N8 }0 U q) h: g
//buffer的第一个字节位置,buffer2和buffer3同样道
P# \+ E7 j3 M8 W: ] //理
( O9 `8 V5 z* p- Q0 X5 P0 \* [7 ?buffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置! i) h8 \2 I% |. ]% C3 J! r" w, e
buffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置+ l: z9 Z- Q1 L* t. E2 q
fp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件$ s( d7 l, y) l4 f0 t
buffer3=buffer2; //buffer3保存buffer2初始时的地址* k- m/ z% W H) K* S r' V
for (i=0;i<=255;i++)1 Q, O. u! y8 I* M
{: H) _; M2 A; E
buffer1=buffer; //buffer1保存buffer初始时的地址
( v' ^& T3 q- Afseek(fp, 0, 0); //重定位到animation.cfg文件的开头: h7 y1 U% b d% P6 S
fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer
" }- w2 Q. p. ]2 A/ a2 U# N( ufor(j=0;j<16;j++)+ i" F5 o3 m3 v, a, c/ V, `6 r
{# r$ m/ S* _ K
*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间/ s4 ?6 F. P8 ?- K+ |9 e0 c
//任一个数值异或,结果保存在buffer1所指的位置上% x U( [/ ~% V5 {
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置/ ?+ A9 \) f2 J) x- p
buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据7 c5 `! c0 U E1 P# [1 ~+ Z4 S$ M
buffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
- O- G2 q4 s0 v" A+ A2 ?}2 F; M; N' v5 a. }: b
}( b/ ^2 u1 ^5 ~8 q) F
fp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入/ l$ M* Y- V2 k
fwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
( |) W& f2 d% W6 ?( Y- d+ ] //buffer2初始时的地址所指的数据,用二进制方式写入
2 Z- Z6 b, V0 x% ^ //16×256字节
% u6 F2 b. I, ^# w; Mfclose(fp2); //关闭文件句柄
4 F) z6 o/ W$ J8 G1 ~fclose(fp);- _ F& T: {: Y
7 R% K3 {, X9 N# b' V
}9 y8 J3 p1 w' l3 y
, i% T& {# r/ {& C" W
: H7 ~; p$ ^2 } b* e& l9 {' |
http://book.51cto.com/art/200903/112751.htm |