在Linux上是否有类似dspcat的实用程序?


9

dspcatAIX上使用以下命令,并且可以转储使用该gencat命令创建的消息目录:

dspcat –g  /u/is/bin/I18N/l/lib/libca/libcalifornia.117.cat >> /tmp/message.smc

我花了很长时间来寻找关于如何在Linux上转储这些目录之一的提示,但是该命令似乎不可用。任何帮助,将不胜感激。


我也没有看到太多。该strings命令足以满足您的需求吗?也许有一点后期处理?
肖恩·佩里

字符串可能是经过编码的。。。我不确定是否可以正确地将shiftjis字符串从字符串目录文件中删除。。。我可以尝试进行一些测试。
ojblass 2014年

如果内容有价值,则格式可能不太难进行反向工程。
肖恩·佩里

Answers:


3

我找到了以下源代码dspcat.chttp : //www.smart.net/~rlhamil/。特别是在这个tarball中。我尝试编译它,但缺少变量:

$ make
cc -O -DSOLARIS    dspcat.c   -o dspcat
dspcat.c: In function ‘format_msg’:
dspcat.c:11:23: error: ‘NL_TEXTMAX’ undeclared (first use in this function)
    static char result[NL_TEXTMAX*2+1];
                       ^
dspcat.c:11:23: note: each undeclared identifier is reported only once for each function it appears in
dspcat.c: In function ‘print_file’:
dspcat.c:240:23: error: ‘NL_SETMAX’ undeclared (first use in this function)
    int setlo=1, sethi=NL_SETMAX, msglo=1, msghi=NL_MSGMAX, x, y;
                       ^
dspcat.c:240:49: error: ‘NL_MSGMAX’ undeclared (first use in this function)
    int setlo=1, sethi=NL_SETMAX, msglo=1, msghi=NL_MSGMAX, x, y;
                                                 ^
dspcat.c: In function ‘main’:
dspcat.c:338:30: error: ‘NL_MSGMAX’ undeclared (first use in this function)
       if (msg_nr<1 || msg_nr>NL_MSGMAX) {
                              ^
dspcat.c:353:32: error: ‘NL_SETMAX’ undeclared (first use in this function)
       if (msg_set<1 || msg_set>NL_SETMAX) {
                                ^
make: *** [dspcat] Error 1

该变量NL_SETMAX似乎未在我的系统上定义。我确实找到了这个头文件,bits/xopen_lim.h它确实具有这个变量,所以我一时兴起将其添加到了头文件列表中。

$ make
cc -O -DSOLARIS    dspcat.c   -o dspcat
dspcat.c: In function ‘format_msg’:
dspcat.c:11:33: warning: integer overflow in expression [-Woverflow]
    static char result[NL_TEXTMAX*2+1];
                                 ^
dspcat.c:11:16: error: size of array ‘result’ is negative
    static char result[NL_TEXTMAX*2+1];
                ^
dspcat.c:11:16: error: storage size of ‘result’ isn’t constant
dspcat.c:15:29: warning: integer overflow in expression [-Woverflow]
    for (x=0; x < (NL_TEXTMAX*2) && *s != '\0'; s++)
                             ^
make: *** [dspcat] Error 1

如果我有更多时间可以解决这个问题,但是我相信,如果您直接在代码中静态设置该变量,则可以自己进行编译。


我非常感谢+50
ojblass 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.