可执行文件字符串提取替换工具0.2.3% L: |2 c- Z; F0 P& z
by Luigi Auriemma
6 [/ ~* {) I2 R8 z& U* ?- i; J7 aemail:[email protected]2 L; }3 {1 T% L/ g# L
web: aluigi.org& a5 Y1 G- ~' o( `
反汇编引擎来自Oleh Yuschuk
# k' x! m/ P8 }$ b' c: Z% D' ^
% Q: a) T& q6 J1 v# P! L使用方法:/ a& R- t5 S- s4 C' z/ g4 n4 Y
命令提示符下:exestringz [options] <cmd_1/2> <file.exe/dll> <strings.txt>7 s$ q' D2 F5 |$ q" D# L+ f
; A% I( L( p0 fOptions:在模式1下(从可执行文件提取字符串到文本文件)% x4 l. s7 t: c
-f 禁用字符过滤,默认状况(即不加-f)只提取0~9,a~z,A~Z以及各种符号标点 T; Q# U) }& T
; q+ m1 v& O+ G( A W# @
-a 只提取亚洲字符,即高于0x7f字节的字符串1 @; g, K7 o2 A3 M* _/ F
( R m$ O- E8 P& _- ~! p-u 不提取unicode字符串
]: U& I$ k8 N
4 a. h% k" M+ {2 v R-l LEN 规定有效字符串的最短长度LEN
2 |9 U. X& v% r9 R& }: v/ g$ \/ B
-b 激活二进制模式,输入文件不会被反汇编,那么工具会尝试提取所有看起来像是字符串的字节,就像unix程序“srtings”( `3 q$ h' G8 k! o8 @1 t% L
7 J& W8 Z% {% l4 G2 ~: `
-e 从文件的入口点开始进行反汇编扫描2 k$ D; V: j$ ~ r: R- y/ i9 j
3 v" |* l: E2 l$ N
-A NUM 只提取按NUM个字节排列的字符串0 M* ]! e" H% \$ O
2 F Z( K. W2 o# C. s下列模式1下的参数只用于查看,因为如此提取出的strings.txt不被模式2支持
1 f2 x( X5 }. M-c C语言格式输出
6 m+ c! D) w' u, k2 e/ k" [
6 M. F7 m" Q; L$ p p8 e: K-C 同上,但是输出成数组的样式,例: 5 s( r+ b O. x
8 V* f$ z" z g: j! N-q 没有字符串之间的“____”线% p+ \0 M6 j- A: E! T$ Q% m. {+ O! e
# D' ^/ K6 l. U! m举例:创建strings.txt并且将他们放回可执行文件中: r! h1 v. V; w! |7 E' T
3 ?: B$ p2 T9 i9 v1)提取字符串生成strings.txt2 S+ {! U: I& N( x; t! `+ D; q
命令:exestringz 1 program.exe strings.txt/ K! K _ N @3 t, X1 A- l
# k" ]# h" t X; Q e, Q2 } 编辑stirngs.txt,可以修改提取出的字符串,但不要修改每一条字符串下面的一行“______”
; ?" c1 s) f/ f2 B" x: g你也可以删掉你不需要修改字符串,记得把每一句下面的“____”也删掉7 ]0 p% i1 N u* F% L# ~1 e; W% ~
3 ?; F7 Y# W) J& S+ c' O2)将修改过的strings.txt注回程序+ A6 U: F) l$ U% P) F
命令:exestringz 2 program.exe strings.txt, d" V! p' q! o" [9 f
! q% M% J, B8 Y) H% O' e
——————————————————————————————————————- `) P# W' E" |7 d- L% T: `4 R2 E
可惜的是,经过测试,该工具不能直接用于script内嵌字幕的WME引擎游戏字幕的汉化.
: X+ K% s; f; N' @: {因为直接把.scripts格式改为.exe或者.dll是不能被该工具识别的,他会提示 :
% b' q! C0 D/ F6 l4 Z. N7 YError:unsupported input file or architecture |