如果我们要深入分析Symbian平台的可执行文件就需要掌握其文件格式-E32Image。
前面的文章中翻译了E32Image格式的基本资料,可以给学习、研究者一些简单的参考。

在WIN32/X86平台针对PE文件格式有很多很好用的分析、修改工具比如PE Tools,PEdit等等,这些工具大大降低
了PE文件分析的难度。

实际上在Symbian平台同样有命令行工具可以用于E32Image文件的分析和修改。本文介绍的就是这样的一款工具:elftran.exe

elftran.exe是Symbian公司的产品,它的基本功能是将ELF格式的文件转换成E32Image格式的文件。在前面的翻译资料
中有介绍:Symbian平台的可执行文件编译连接之后,要使用elftran.exe将其转换为E32Image格式。


代码:
使用方法:

elftran [options] inputfile outputfile

elftran [options] e32imagefile
从使用方法中可以看到该工具还可以直接对E32Image格式的文件进行操作。



参数如下:

option: [-v] [[-no]call[entrypoint]] [-priority <priority>]
        [-stack <size>] [-heap <min> <max>] [-uid<n> <uid>]
        [-allowdlldata] [-datalinkaddress <base>] [-fixed] [-moving]
        [-align-const-section] [-const-section-address-mask <mask>]
        [-[no]compress] [-compressionmethod none|deflate|bytepair]
        [-capability "<list>"] [-version M.m] [-vid <id>]
        [-fpu <softvfp|vfpv2>] [-[default|un]paged]
        [-dump [h][s][c][d][e][i]]

可以看到elftran.exe提供了非常丰富的设置功能。可以设置程序的运行权限、堆栈大小、堆的最大最小值、uid等等。可以
压缩和解压E32Image文件。可以将文件信息dump到屏幕上等等。

代码:
一些简单示例:

01、解压E32Image文件
    elftran  -nocompress  dvdplayer.exe

02、压缩文件
    elftran  -compress  dvdplayer.exe

03、设置堆栈大小
    elftran  -stack 1024 dvdplayer.exe

04、Dump E32Image文件头
    elftran  -dump  h  dvdplayer.exe

    -dump 对应参数含义。
 
   h Header
    s Security info
    c Code section
    d Data section
    e Export info
    i Import table

这几个参数可以同时使用。

通过实验还证明,可以使用该命令可以修改uid的数值,相应的CRC会由程序自动调整。
上传的附件 elftran使用.rar