可执行文件字符串提取替换工具0.2.3% k" j' ?, @ {, s3 O5 H
by Luigi Auriemma2 u( Z/ n& F1 x M3 R6 z
email:[email protected]( [* A+ C% J6 ]$ k, S
web: aluigi.org
$ f( l/ p+ _6 j反汇编引擎来自Oleh Yuschuk
+ e6 W+ B/ K* a* \2 y6 ?) V# z* K* Q3 l- ^" R/ o
使用方法:
6 D* x, e/ M/ x H5 C命令提示符下:exestringz [options] <cmd_1/2> <file.exe/dll> <strings.txt>* O% P. i# e6 N% k/ ?4 Q# _
; H4 y- L) s2 M3 g& r* X: MOptions:在模式1下(从可执行文件提取字符串到文本文件)
$ D' T# O* u g+ m4 _ Y-f 禁用字符过滤,默认状况(即不加-f)只提取0~9,a~z,A~Z以及各种符号标点8 R$ k) ~. r/ U( B. o# Y
2 p u# Q1 m( V/ C; b1 E5 H4 R* }
-a 只提取亚洲字符,即高于0x7f字节的字符串
3 l. k) j/ D1 Y
, n/ }2 l0 m4 G; d/ v-u 不提取unicode字符串
0 n5 f( _. d, \) l% I9 d
. n; z: Q) F4 e" e# z4 ^-l LEN 规定有效字符串的最短长度LEN
( ?7 B7 [2 [4 A7 g- k
* S: e; ?; e8 Q-b 激活二进制模式,输入文件不会被反汇编,那么工具会尝试提取所有看起来像是字符串的字节,就像unix程序“srtings”
- i c4 k; q, I0 m: N8 w/ V6 Y& M c
-e 从文件的入口点开始进行反汇编扫描
1 W2 T, \, \1 a9 d) \
" I. W# i: V, n8 {( t% A, V-A NUM 只提取按NUM个字节排列的字符串 q+ E, P: n) k% O# h& s
# v) ^& U& R- T下列模式1下的参数只用于查看,因为如此提取出的strings.txt不被模式2支持
% Q: }. o9 y# Z* N/ _* B8 R-c C语言格式输出
. w5 W [% E1 f+ |, H2 G
; E! Q% I D) S- w-C 同上,但是输出成数组的样式,例: ) N6 Y: ^1 s9 [5 I
2 U) v; g) \" P+ n7 M5 G6 P
-q 没有字符串之间的“____”线
" h! v3 h6 I% v8 `
2 L8 }' X3 f* E1 B% F' j: a! @- [举例:创建strings.txt并且将他们放回可执行文件中# t$ Y8 |8 _* S$ H6 O
/ ^/ A# k; c A$ S' o
1)提取字符串生成strings.txt7 r+ ?( f" j7 u. X! o9 @
命令:exestringz 1 program.exe strings.txt
& ]8 \/ p" B6 V3 T& s6 s/ R1 V7 O1 ~% ]+ V5 C! A) S; X6 Z% w8 \
编辑stirngs.txt,可以修改提取出的字符串,但不要修改每一条字符串下面的一行“______”* ~+ B3 f ?2 a6 H& A& J# H, Z; P
你也可以删掉你不需要修改字符串,记得把每一句下面的“____”也删掉" W) i# u3 V# s. u. X' |
: i9 I( j( u1 t1 z& x# p
2)将修改过的strings.txt注回程序3 s c( {1 t& K
命令:exestringz 2 program.exe strings.txt/ a( @4 X8 a1 R! K
D4 {! v% f8 I5 J) S8 F. p
——————————————————————————————————————% o" L( Q* ^1 e, H2 _ q
可惜的是,经过测试,该工具不能直接用于script内嵌字幕的WME引擎游戏字幕的汉化.
/ E3 b5 j! m1 M* ?: R因为直接把.scripts格式改为.exe或者.dll是不能被该工具识别的,他会提示 :
* s: { |' c% b5 G1 U2 l$ wError:unsupported input file or architecture |