@@ -7,45 +7,45 @@ import (
7
7
const debugLoader = false
8
8
9
9
const (
10
- R_AARCH64_RELATIVE = 1027
11
- DT_NULL = 0 /* Terminating entry. */
12
- DT_RELA = 7 /* Address of ElfNN_Rela relocations. */
13
- DT_RELASZ = 8 /* Total size of ElfNN_Rela relocations. */
10
+ rAARCH64_RELATIVE = 1027
11
+ dtNULL = 0 /* Terminating entry. */
12
+ dtRELA = 7 /* Address of ElfNN_Rela relocations. */
13
+ dtRELASZ = 8 /* Total size of ElfNN_Rela relocations. */
14
14
)
15
15
16
16
/* ELF64 relocations that need an addend field. */
17
- type Rela64 struct {
17
+ type rela64 struct {
18
18
Off uint64 /* Location to be relocated. */
19
19
Info uint64 /* Relocation type and symbol index. */
20
20
Addend int64 /* Addend. */
21
21
}
22
22
23
23
// ELF64 Dynamic structure. The ".dynamic" section contains an array of them.
24
- type Dyn64 struct {
24
+ type dyn64 struct {
25
25
Tag int64 /* Entry type. */
26
26
Val uint64 /* Integer/address value */
27
27
}
28
28
29
29
//export __dynamic_loader
30
- func dynamicLoader (base uintptr , dyn * Dyn64 ) {
31
- var rela * Rela64
30
+ func dynamicLoader (base uintptr , dyn * dyn64 ) {
31
+ var rela * rela64
32
32
relasz := uint64 (0 )
33
33
34
34
if debugLoader {
35
35
println ("ASLR Base: " , base )
36
36
}
37
37
38
- for dyn .Tag != DT_NULL {
38
+ for dyn .Tag != dtNULL {
39
39
switch dyn .Tag {
40
- case DT_RELA :
41
- rela = (* Rela64 )(unsafe .Pointer (base + uintptr (dyn .Val )))
42
- case DT_RELASZ :
43
- relasz = uint64 (dyn .Val ) / uint64 (unsafe .Sizeof (Rela64 {}))
40
+ case dtRELA :
41
+ rela = (* rela64 )(unsafe .Pointer (base + uintptr (dyn .Val )))
42
+ case dtRELASZ :
43
+ relasz = uint64 (dyn .Val ) / uint64 (unsafe .Sizeof (rela64 {}))
44
44
}
45
45
46
46
ptr := uintptr (unsafe .Pointer (dyn ))
47
- ptr += unsafe .Sizeof (Dyn64 {})
48
- dyn = (* Dyn64 )(unsafe .Pointer (ptr ))
47
+ ptr += unsafe .Sizeof (dyn64 {})
48
+ dyn = (* dyn64 )(unsafe .Pointer (ptr ))
49
49
}
50
50
51
51
if rela == nil {
@@ -58,14 +58,14 @@ func dynamicLoader(base uintptr, dyn *Dyn64) {
58
58
59
59
for relasz > 0 && rela != nil {
60
60
switch rela .Info {
61
- case R_AARCH64_RELATIVE :
61
+ case rAARCH64_RELATIVE :
62
62
ptr := (* uint64 )(unsafe .Pointer (base + uintptr (rela .Off )))
63
63
* ptr = uint64 (base + uintptr (rela .Addend ))
64
64
}
65
65
66
66
rptr := uintptr (unsafe .Pointer (rela ))
67
- rptr += unsafe .Sizeof (Rela64 {})
68
- rela = (* Rela64 )(unsafe .Pointer (rptr ))
67
+ rptr += unsafe .Sizeof (rela64 {})
68
+ rela = (* rela64 )(unsafe .Pointer (rptr ))
69
69
relasz --
70
70
}
71
71
}
0 commit comments