forked from Noice2k/NsisDecompiler
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathText.txt
36 lines (24 loc) · 1.25 KB
/
Text.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// * the installer is composed of the following parts:
// exehead (~34kb)
// firstheader (struct firstheader)
// * headers (compressed together):
// header (struct header - contains pointers to all blocks)
// pages (struct page)
// section headers (struct section)
// entries/instructions (struct entry)
// strings (null seperated)
// language tables (language id, dialog offset, language strings)
// colors (struct color)
// data block (compressed files and uninstaller data)
// CRC (optional - 4 bytes)
//
// headers + datablock is at least 512 bytes if CRC enabled
*headers = [4 compressed length][compressed data]
[compressed data] = [size][headers][size][uninstaller exe header][size][file 1][size][file2] ...
[headers] = [header(struct header)][page*NB_PAGES->num][Secstion*NB_SECTION->num]
nsis dont store the compress method - they simply used the stub.exe with included compressing algorithm. total 6 stubs lzma/bzip/lzw + _solid version.
to detect the compression algorutm you need binary compare files from C:\Program Files (x86)\NSIS\Stubs\ and yours exe, the first 34 kb should be match at 98%
lang_table - the array offsets for string table. if you need e
lang_table[x] = offeset in
global_wars[0] - path
global_wars[1] - $0