这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。
, `, l, Y# q+ N5 ]
' I" J/ Z3 N: T& E9 E8 k懂的参考修改完善出工具吧
# Z: r( _8 B8 \
$ l2 Z9 H" |' R9 Q5 A! v9 W# k1 a, i( V4 L$ z2 w, |
" m! Z3 \4 p& q" c! x
#include<stdio.h># s1 i; u4 l" ?7 n2 b9 |6 B+ j
#include<windows.h>
5 c1 ]6 H' b* H+ Z$ R9 [8 |main()
1 X, B$ \& E; n1 W{1 C* u& l/ \+ J
FILE *fp,*fp2;
) U+ h6 a- S4 b8 U4 i+ s5 s) Kint i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置
3 X( ]( |$ T+ Rbyte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2
9 C0 Q7 y8 t, v7 U0 {! c//和buffer34 @+ a* z F/ C/ \
//一组,buffer指针会变动,buffer制作永远指向
0 A) T: k+ Z8 n8 T //buffer的第一个字节位置,buffer2和buffer3同样道( H8 c* C; F% Z5 s3 \
//理
. ?( V* u$ {5 ~* Bbuffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置
|% d. g( V, `" J$ [6 Ebuffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置& {7 ?" e2 @" W, @" w
fp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件
4 V, `- b7 S/ Abuffer3=buffer2; //buffer3保存buffer2初始时的地址1 U& ]. x- G% o% B# m9 z8 X6 v
for (i=0;i<=255;i++)$ c% s$ y. y0 @/ |5 q
{
5 k0 Q+ P' ]% o8 U- Xbuffer1=buffer; //buffer1保存buffer初始时的地址; r. e I% j' u1 W: v- X% ]/ u9 L
fseek(fp, 0, 0); //重定位到animation.cfg文件的开头5 j' g7 J, M7 {( c
fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer9 b5 L6 U# S% g, R* [5 t- S
for(j=0;j<16;j++)
! L. }) |3 Y8 p{
1 u+ {! X* J H b*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间3 b% a* s4 s+ T3 ?* w. H0 S9 x
//任一个数值异或,结果保存在buffer1所指的位置上/ N2 N- [6 i* n2 S* k, `
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置. p: G! u' j: t0 M5 O* b0 ^
buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
, a7 p0 K! w1 n8 \buffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
5 g. ?' O8 {4 h+ h! n h}
* C# i) j9 B$ [$ {( M9 H}
+ L' v8 a8 \& Y" I( Nfp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入& ?4 J" _: s, l4 F0 r. l4 [! b
fwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
* r/ `" D: N a //buffer2初始时的地址所指的数据,用二进制方式写入
- { r& h( x7 a; [! c //16×256字节& A1 O" ~8 x! I
fclose(fp2); //关闭文件句柄! {2 x% T4 C+ i* E
fclose(fp);
~9 g; ?2 F% g0 p, f! S1 d9 |& Q7 J: j, N4 j* C
}
3 ]& O5 c# n) f1 l+ P8 E& V& J7 C4 E8 O
) t9 c$ v |+ E' V9 k. O
http://book.51cto.com/art/200903/112751.htm |