A NetWare Loadable Module (NLM) is a binary code module that can be loaded into Novell's NetWare operating system. NLMs can implement hardware drivers, server functions (e.g. clustering), applications (e.g. GroupWise), system libraries or utilities.
Structure of NLM file:
Structure of NLM file:
00 - char[0x18] : 'NetWare Loadable Module' 1a
18 - long : 00000004 ; load version
04 = NW 3.11
84 = NW 3.12 & above (NLM compression)
1c - strlen:1, string:strlen, 00:(13-strlen)Novell loadable module decoder by W.J.Hengeveld jun 1994
2a - offset, len ; 0, 1 code segment
32 - offset, len ; 2, 3 data segment
3a - 0(long) ; 4 length of uninitialized data
3e - offset, len ; 5, 6 custom data segment
46 - offset, nrec ; 7, 8 autoload modules
4e - offset, nrec ; 9,10 fixups
56 - offset, nrec ;11,12 externals
5e - offset, nrec ;13,14 exported symbols
66 - offset, nrec ;15,16 debug symbols
6e - codeoffset ;17 start nlm
72 - codeoffset ;18 terminate nlm
76 - codeoffset :19 check nlm
7a - type :20
00=nlm NetWare Loadable Module
01=lan LAN Driver
02=dsk Disk Driver
03=nam Name Space
04=msl Mirrored Server Link
05=
06=nw3 Operating system
07=nw4 Operating system
0c=internal 'hidden' internal NLM, can not be unloaded
7e - ? ;21
82 - len, string, 00 ; description
- 00 20 00 00 00 00 00 00 20 ; flags
- 'LONG'
- len, string, 00 ; screenname
- len, string, 00 ; threadname
- 'VeRsIoN#'
- major (long)
- minor (long)
- sub version (long)
- year
- month
- day
- 'CoPyRiGhT='
- len, string,0 ; copyright message
- 'MeSsAgEs'
- LONGS ...
types in external symbol list:
0 - ? relative reference (near call) from data segment
4 - relative reference (near call) from code segment
8 - ? absolute reference (long offset) from data segment
c - absolute reference (long offset) from code segment
types in fixup table:
0 - abs ref to data segment from data segment
4 - abs ref to data segment from code segment
8 - abs ref to code segment from data segment
c - abs ref to code segment from code segment
No comments:
Post a Comment