冒险解谜游戏中文网 ChinaAVG

标题: 异或加密字幕文件暴力解密工具(yaozheng请进) [打印本页]

作者: shane007    时间: 2010-2-25 23:32
标题: 异或加密字幕文件暴力解密工具(yaozheng请进)
yaozheng,你好,给你安排一个小任务。
, G7 L$ E/ ^6 ]) L! q% y$ p# q/ V; A2 D% T4 \5 m: E1 P
对一个被xor加密的文件的头部n个字节用0x00--0xff xor处理后,输出到一个文本文件中。! q! y, o8 U! H% Z
用于检测文件的xor key。
! M- T1 L; D3 I$ z7 n' k4 W0 n; P命令行或GUI均可,n是可指定的。
% m. V/ j: f7 T$ W2 S
5 Y; W. x8 A2 R! G* Q% G有不懂的地方可以回帖问。
作者: byp100    时间: 2010-2-26 19:48
这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。5 @7 z1 n! n0 _
2 ~3 I/ \4 W9 S  \, [3 |
懂的参考修改完善出工具吧
' B* }3 s/ ^& W( K& J/ n/ H2 C, C" R7 e; W' v1 ?* E" y
6 U8 p# j6 F* S/ z  D
7 c' G0 Y* H" J4 Z
#include<stdio.h>/ t  n: N0 p- m. J% g
#include<windows.h>4 o: L' G: O- B3 H
main()
/ |' [9 n' _0 x" G. K- t{
: h2 a. S/ A% V8 V3 |2 uFILE *fp,*fp2;! R7 [/ r6 r$ \# e- T
int i,j;  //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置! F# }$ q6 r! Y" u! y3 n9 A
byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2' _6 ^8 t, q2 c3 a
//和buffer3" l8 G: N6 _5 u, }
//一组,buffer指针会变动,buffer制作永远指向  t$ o' e; P# e# O- U! m8 A
//buffer的第一个字节位置,buffer2和buffer3同样道
6 l; J9 O3 q, a; s: {' n/ J  y4 k //理% Q% ]( G) y$ m. u
buffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置; W  C. J- ^; j3 o0 r7 p4 s
buffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置
$ i; R% ^( r- S5 ]fp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件; t8 S( @2 G- a3 k
buffer3=buffer2;                  //buffer3保存buffer2初始时的地址
( D- g/ d2 D  Q5 X5 R; dfor (i=0;i<=255;i++)! ^# n5 V+ i1 M+ h  Y$ O9 `: q+ X
{5 g0 u$ r7 X$ h
buffer1=buffer;               //buffer1保存buffer初始时的地址
9 s+ _5 G' j% ~  X- B5 S' Xfseek(fp, 0, 0);               //重定位到animation.cfg文件的开头
6 a8 s) M2 Y( {9 Mfread(buffer1, 16, 1, fp);   //读取animation.cfg文件的开头16字节数据到buffer/ v# x( ]* I( `
for(j=0;j<16;j++)& l9 |) Y& y& B- M0 X8 P6 S) Z
{9 @8 ?( K, r# b3 {
*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间
# D3 Z3 {; J$ m& q% B" Q //任一个数值异或,结果保存在buffer1所指的位置上
( K. T4 H: H7 G7 A# C/ F*buffer2=*buffer1;   //将buffer1所指向的数据复制到buffer2所指的位置
+ p' J, r7 P, l: @) f5 Q( Pbuffer1=buffer1+1;              //buffer1指针加1,准备读取下一个数据; `! L" I' }2 D/ N& V6 b0 |
buffer2=buffer2+1;              //buffer2指针加1,准备存储下一个数据
/ I7 ~" F" F9 E+ ^# g+ ~( h& |/ o}
, m  O! t9 M: A: h# i! v7 x# p* u. e; X}
& O& c; V6 c0 ]fp2 = fopen("test", "wb+");          //打开一个二进制文件,准备将数据写入
; Q$ a/ c/ Z" Y$ }2 b) k# Y' k- Afwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
2 u- z' k# E& v$ l //buffer2初始时的地址所指的数据,用二进制方式写入! g9 P) Q6 @* W1 n" o
  //16×256字节
4 y. H- k2 a% Ifclose(fp2);                           //关闭文件句柄
5 F$ E: B( Y- z, A+ `fclose(fp);
6 e6 ]; ]' \0 z6 }; F
1 a; y% a! |$ V/ s* P9 \6 V}$ i8 M) N% |0 z$ I5 q
& K2 }+ _; I2 Q2 T& \. V

3 C" S% @( ^1 ?2 [% Jhttp://book.51cto.com/art/200903/112751.htm
作者: yaozheng    时间: 2010-2-26 21:04
收到,周末俺来研究一下,感谢楼上提供的资料。
作者: shane007    时间: 2010-2-26 21:05
感谢byp100 ,期待yaozheng的汉化工具作品。
作者: byp100    时间: 2010-2-28 20:56
我把自己用的编译发出exe吧
! Y, I$ O% B  u' M; \6 ?, \, }8 N- G8 x. K( c2 z
把需要xor解密的文件改名为“1.cfg,和xor.exe文件放一起,运行xor.exe,生成一个test的文件,用16进编辑器打开test,仔细看那个像是xor加密的吧。* u( l( r1 a. D& t

. |0 k8 K# p8 T) R# u4 Y! @+ \更完善的就等待吧
作者: shane007    时间: 2010-3-1 21:15
收到,谢谢!8 C5 x: \( R% C& t
等我有时间测试看看。
作者: yaozheng    时间: 2010-3-3 10:51
我搞完了,请看看是否满足要求。
作者: shane007    时间: 2010-3-3 21:06
收到,不过不完全符合我的要求。
1 i7 Y4 H, Y% G* b我希望得到的结果是如下这样的,那么哪个key是加密用的key就一目了然了。
/ W- P" p: h0 U, Z2 k& t# [另外,补上COMDLG32.OCX,没有这个的电脑无法运行这个工具。
9 l) j4 _& y6 |9 x9 \; f# h- G+ o  k
Key   0x00
& m( d1 E( y& G  FMZ    L[?OX?NY? I^?H_?K\\L[?MZ    NY? OX?H_?I^?J]OX?NY? 
8 x5 E* ]: \8 |% U( @/ U# K0 O5 F9 v, ]+ s3 _/ D8 Z5 U% k
Key   0x016 b( k6 v4 \' U5 @
MZ    L[?K\\?J]?I^NY? OX?L[?MZ    J]?K\\?H_I^?H_?K\\?J]?* |, G8 c# ]' A& Y8 m0 L/ y

) P4 e& V/ {& y' Z8 pKey   0x02
% H# C. P6 k$ S2 RMZ    L[?OXH_?I^?J]?K\\?L[?MZ    NYK\\?J]?I^?H_?OX?NY? 
作者: yaozheng    时间: 2010-3-4 11:10
不好意思,可能之前理解错了。改了一下,请再看一下。1 a8 b# B$ o/ U5 ?% c
( C: J3 X. a- c/ y# ]
在公司里电脑好像上传文件不行,我先传到网盘里吧。
/ A4 G. d) x' `5 q( I
  N) J, ?3 S, W) T" K2 `3 lhttp://d.namipan.com/d/d8584c25c ... 019da98e70a25fc0000




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2