冒险解谜游戏中文网 ChinaAVG

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

作者: shane007    时间: 2010-2-25 23:32
标题: 异或加密字幕文件暴力解密工具(yaozheng请进)
yaozheng,你好,给你安排一个小任务。3 m3 i# M, H/ y* f  D& Z- a
9 c/ x/ U, ?8 i9 |
对一个被xor加密的文件的头部n个字节用0x00--0xff xor处理后,输出到一个文本文件中。
* D, _" g' z* _7 U/ H; t用于检测文件的xor key。
/ n9 H7 ?, E1 ]( J) S" G, e  e命令行或GUI均可,n是可指定的。! p9 d' Z+ {6 `7 }
% Y5 J- J3 S6 h$ r* U; f
有不懂的地方可以回帖问。
作者: byp100    时间: 2010-2-26 19:48
这代码我网上看到了,直接拿来利用,我一般是把16个字节改成64字节,把要xor的改成animation.cfg,然后生成个test文件,用16进看看数据那个像吧。, q. Q$ e1 g( h& d: i

- y) S9 g, b4 [# ]+ e: W/ }" q懂的参考修改完善出工具吧
- ?: ~# N9 V+ T% h2 V5 g8 {. G9 g% ?" r1 Q* l' O

1 A) o6 A5 s) w# Y5 b$ Q( H/ A- x: [* D' I4 W2 q, Y
#include<stdio.h>/ |  B3 Y/ T/ f  J: F, T# R1 T
#include<windows.h>
3 f% E+ s/ k" b- y. P% J: u' {main()
5 h$ k  E: Y- Y# Y{1 ^! i  y0 E3 ~' {
FILE *fp,*fp2;  I1 K0 Q$ r8 g) E
int i,j;  //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置2 J8 e2 q1 y% M- Z# b- x& c
byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2
7 O. P+ X( U( f; n. b5 `4 z# v8 e//和buffer3
2 {4 p0 Q; V8 a5 v' H //一组,buffer指针会变动,buffer制作永远指向
' z( P  q5 q( c& L' |" p //buffer的第一个字节位置,buffer2和buffer3同样道
0 t) \* d& D7 {  f' } //理! G5 x" Z% P/ O7 ~# R% H
buffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置
0 s, @9 N4 F% l. k# Abuffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置
# P0 Q% u- `! c4 Q, S9 Dfp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件( |  A, H8 W9 R  M5 D
buffer3=buffer2;                  //buffer3保存buffer2初始时的地址
7 C) T1 y4 V9 yfor (i=0;i<=255;i++)# n5 L6 g% y5 s- A* N
{
' k* O- `% l- R* g. n& l6 nbuffer1=buffer;               //buffer1保存buffer初始时的地址
: n" v+ \3 I6 ?% {6 Gfseek(fp, 0, 0);               //重定位到animation.cfg文件的开头
/ g' v" R6 C) X4 {, Nfread(buffer1, 16, 1, fp);   //读取animation.cfg文件的开头16字节数据到buffer( b- D0 N, d4 h& a
for(j=0;j<16;j++): L1 D, w8 K& s
{
  c  a3 E: M: @8 x& z) ~3 W*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间7 A$ V$ Z4 e, J
//任一个数值异或,结果保存在buffer1所指的位置上0 b7 l1 Q4 m6 M7 {' F  c! ]
*buffer2=*buffer1;   //将buffer1所指向的数据复制到buffer2所指的位置
% }' V' x( D3 w, X& h8 Ibuffer1=buffer1+1;              //buffer1指针加1,准备读取下一个数据+ ?, L. P7 \" D+ u' r. o) V$ i$ D
buffer2=buffer2+1;              //buffer2指针加1,准备存储下一个数据$ K+ [9 t* ]9 H! B. W9 N& V! I' e
}- W/ @) s: i1 S* O' P: s
}. S) Z: t( W1 a9 q
fp2 = fopen("test", "wb+");          //打开一个二进制文件,准备将数据写入
2 G# v' i  T: }: ]* f- J% U4 z! s3 Kfwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
! j2 q& u8 m/ k! ]( n" ^ //buffer2初始时的地址所指的数据,用二进制方式写入4 O# c, _& X# b; I  u$ w2 N
  //16×256字节0 l; T1 b8 H( X; b, O
fclose(fp2);                           //关闭文件句柄
8 G: D) X) W3 P7 c9 pfclose(fp);+ r) ~0 g! ~. x0 S
# y( ?% j! Z" T0 a% C
}4 m, K  R6 p* R" @/ L( r
4 `% x1 F' Y3 ]$ }/ S) x# C

0 b7 d8 f. F0 {  ?2 J1 Fhttp://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吧
$ A7 V! u6 v; K$ z$ `  W2 ?8 a4 v
, J7 N3 A8 C- ^0 o把需要xor解密的文件改名为“1.cfg,和xor.exe文件放一起,运行xor.exe,生成一个test的文件,用16进编辑器打开test,仔细看那个像是xor加密的吧。
% a' m" q1 T5 w2 @" A( m; v  f" I/ h: x; Q4 v4 M4 S  ]
更完善的就等待吧
作者: shane007    时间: 2010-3-1 21:15
收到,谢谢!/ T9 y( o% A. ^. S& Y2 Q( W6 s
等我有时间测试看看。
作者: yaozheng    时间: 2010-3-3 10:51
我搞完了,请看看是否满足要求。
作者: shane007    时间: 2010-3-3 21:06
收到,不过不完全符合我的要求。
0 P% L, [& C, D2 h我希望得到的结果是如下这样的,那么哪个key是加密用的key就一目了然了。
7 }- e. {% ]' v+ e另外,补上COMDLG32.OCX,没有这个的电脑无法运行这个工具。
# a7 Y% b3 u) l2 V' t& ~2 W5 b, C# _
Key   0x00
3 r+ }+ ~1 l3 DMZ    L[?OX?NY? I^?H_?K\\L[?MZ    NY? OX?H_?I^?J]OX?NY? 4 J7 \3 j3 x$ {: \2 d' E
+ k, [3 U, }0 |8 g5 C& f3 M
Key   0x01! F6 P. ~8 D" C) `5 }
MZ    L[?K\\?J]?I^NY? OX?L[?MZ    J]?K\\?H_I^?H_?K\\?J]?
+ u0 `) v+ q; G8 D8 ~
4 \) w$ n3 Q: }$ V4 R5 g( dKey   0x02/ L: s: j; A/ `1 z; g8 ?4 s
MZ    L[?OXH_?I^?J]?K\\?L[?MZ    NYK\\?J]?I^?H_?OX?NY? 
作者: yaozheng    时间: 2010-3-4 11:10
不好意思,可能之前理解错了。改了一下,请再看一下。( Z; o& N9 p0 f& w$ L/ X$ }& p1 ~
5 E% p. J/ _, g% G  ?) N0 D
在公司里电脑好像上传文件不行,我先传到网盘里吧。
2 ]: |, U* T. Z/ Y$ F: s2 w/ n
5 d2 |0 g! S7 ~; }# v' }http://d.namipan.com/d/d8584c25c ... 019da98e70a25fc0000




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