可执行文件字符串提取替换工具0.2.3+ q1 t$ i: M$ L* f
by Luigi Auriemma8 S- F+ J3 V! g. Q/ G+ Y
email:[email protected]1 e- m( t) _- Z* u' F5 ^
web: aluigi.org
: L$ O0 n! V) d# ~3 P反汇编引擎来自Oleh Yuschuk% Y6 y5 F9 z" {6 ?2 w/ b
% W& U$ u- k9 D2 {* d' o使用方法:: \$ b, H3 b M2 K! I& o; O
命令提示符下:exestringz [options] <cmd_1/2> <file.exe/dll> <strings.txt>* _4 p0 J/ Z6 ]. [$ r Y
9 E ^% Z4 d4 q o! b0 g, w
Options:在模式1下(从可执行文件提取字符串到文本文件)
, n. `6 g- g9 p-f 禁用字符过滤,默认状况(即不加-f)只提取0~9,a~z,A~Z以及各种符号标点
9 [7 h7 n$ ^! L/ O$ w. I
1 \! `1 `. B0 Z- R' K-a 只提取亚洲字符,即高于0x7f字节的字符串$ [6 ?. }& u+ O+ S) R
' s8 y& y0 c3 c5 c' e-u 不提取unicode字符串
" ]& \ m2 M) @7 | C" O) T: a, P6 B/ E+ l% O: b: y9 o y
-l LEN 规定有效字符串的最短长度LEN/ Q2 i8 ~: \+ M L! ^# r& D9 Y
: e1 c4 C. `" U$ T3 Q-b 激活二进制模式,输入文件不会被反汇编,那么工具会尝试提取所有看起来像是字符串的字节,就像unix程序“srtings”' p$ C% Y; ]. R* S$ s$ s$ n
/ a: n) k- i* X3 {- _8 @-e 从文件的入口点开始进行反汇编扫描
+ K3 x; p$ _/ J) F
& n* ]5 E# {# Y: W9 G* u5 D1 U-A NUM 只提取按NUM个字节排列的字符串: c S* \- s9 M$ `. P
$ {) q P$ u' B! v
下列模式1下的参数只用于查看,因为如此提取出的strings.txt不被模式2支持
7 f2 Q( `, N4 \* ^/ o' |-c C语言格式输出) L- J) ^5 L5 z# a' J. E( l1 {4 t
' J8 J/ P$ [: o) I2 |3 L-C 同上,但是输出成数组的样式,例:
6 v) p8 x; A6 o5 {+ M
3 {9 O. j9 \) z0 s8 x- z* h$ q8 K* e1 ]-q 没有字符串之间的“____”线
4 t! s! ?7 p4 A: m) n; J$ [$ ^8 _ ^
举例:创建strings.txt并且将他们放回可执行文件中$ n0 K* `' b8 u2 @; Q) z
9 R! B+ S. s1 V5 @7 b1)提取字符串生成strings.txt
6 `9 i# n q7 H6 L命令:exestringz 1 program.exe strings.txt+ H w/ x% [6 r: B( Z
$ Y0 l1 i& K" I* R( K
编辑stirngs.txt,可以修改提取出的字符串,但不要修改每一条字符串下面的一行“______”
% R9 o) f# B4 Y5 `( s你也可以删掉你不需要修改字符串,记得把每一句下面的“____”也删掉! n( B& I7 p) [. ~
, t |1 h1 f1 c8 _+ K$ t$ p
2)将修改过的strings.txt注回程序" G% R$ F- r5 n& U: p
命令:exestringz 2 program.exe strings.txt
" K+ L. r" N1 W' o% P2 \" G: ~8 ^' u4 l
——————————————————————————————————————# E [( U9 n E7 }+ \2 Z* Y! U
可惜的是,经过测试,该工具不能直接用于script内嵌字幕的WME引擎游戏字幕的汉化.0 X" n2 p( @' d4 [
因为直接把.scripts格式改为.exe或者.dll是不能被该工具识别的,他会提示 :6 _% ?$ o0 E" b" I( j
Error:unsupported input file or architecture |