这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。
. p9 c1 I2 s" L0 f. l$ ]2 \" D8 |0 ]1 C% e, n
懂的参考修改完善出工具吧
# h" `% f- G) z1 e/ O, L
2 ]) {+ D# V+ ~/ C' Q9 B0 l' l- L, E0 [
- w6 z6 r/ Z6 j#include<stdio.h>& U4 @ Q; U) i! u- H6 Z# q
#include<windows.h>. e8 G& O; }$ H; U! ~; c( K# K+ H
main()5 N- w% [/ ?( Q4 a
{
3 r9 Q$ H0 ?" E* V# f+ ]FILE *fp,*fp2;0 C) d" |3 @# ~+ X& ^
int i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置
2 n4 B1 X y7 `- V- k% kbyte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer27 n/ d t' y) C+ ^1 a% _
//和buffer3% H9 v, Q9 Z1 m( I% o, u
//一组,buffer指针会变动,buffer制作永远指向
Z2 o3 v: @ |* Y8 ^. d0 |0 K$ ^ //buffer的第一个字节位置,buffer2和buffer3同样道
* @" d" l N9 u //理1 k/ f) |* a) e, r( i
buffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置
{' b. O* y' n/ w/ ^* mbuffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置
' B- Q6 \' b2 s/ G% Dfp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件
# g. P6 `7 _4 R, zbuffer3=buffer2; //buffer3保存buffer2初始时的地址( ?4 w& N2 {+ \! D8 Y
for (i=0;i<=255;i++)
) O6 K7 }( r; y6 A; }5 H H{/ `! \/ F/ b7 A/ A4 p" d# X
buffer1=buffer; //buffer1保存buffer初始时的地址
' r/ j/ p3 l3 ^6 e( g, [, \fseek(fp, 0, 0); //重定位到animation.cfg文件的开头
/ z D& ~. n y9 m, `fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer
/ |( T: k; e) c+ B4 l8 D# i- ]for(j=0;j<16;j++)8 k4 `0 H5 p7 _% \- R( C5 ~
{# f2 f8 ~, q- p! R
*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间
4 w Z( V t. |% ~, \0 A9 {* T //任一个数值异或,结果保存在buffer1所指的位置上
' f4 l2 ?7 B5 A6 O: Q*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置
" @8 v) f- k- V7 ^" \7 kbuffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
$ y& v2 w t0 T; k) [buffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据) A; g- p% T* _% D
}
5 M- B2 r0 q, |* e7 v8 r$ e8 W}
* a, U$ _9 t: F$ }fp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入/ S1 T1 V5 Y! l. Y7 ?7 ^
fwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将( \; n2 l* g4 E
//buffer2初始时的地址所指的数据,用二进制方式写入
, \# `3 z# y& y' n# ` //16×256字节
" P4 l( E4 y0 Kfclose(fp2); //关闭文件句柄
. k, Y# L5 r. o, @8 o8 U" I4 N4 ~3 ]1 Hfclose(fp);
6 w4 g' }4 r. I+ b7 j
0 X# y* C( S5 W' l/ Q}8 D7 B$ | r& E6 ~- r0 U# n
K; ^! J0 e2 O, n' ?# u# o
/ ]) L9 ~. z }; w2 whttp://book.51cto.com/art/200903/112751.htm |