reloc32 uncommented
This commit is contained in:
@@ -150,7 +150,7 @@ section CALLTR02
|
|||||||
sub eax, edi
|
sub eax, edi
|
||||||
sub bl, 0xE8
|
sub bl, 0xE8
|
||||||
|
|
||||||
.if \addvalue
|
.ifnc \addvalue, 0
|
||||||
add eax, \addvalue
|
add eax, \addvalue
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
@@ -187,7 +187,7 @@ section CTBSWA11
|
|||||||
section CALLTR13
|
section CALLTR13
|
||||||
sub eax, edi
|
sub eax, edi
|
||||||
|
|
||||||
.if \addvalue
|
.ifnc \addvalue, 0
|
||||||
add eax, \addvalue
|
add eax, \addvalue
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
@@ -256,51 +256,52 @@ ckcount:
|
|||||||
jg ckloop3
|
jg ckloop3
|
||||||
ckend:
|
ckend:
|
||||||
%endmacro
|
%endmacro
|
||||||
|
#endif
|
||||||
|
|
||||||
;; =============
|
// =============
|
||||||
;; ============= 32-BIT RELOCATIONS
|
// ============= 32-BIT RELOCATIONS
|
||||||
;; =============
|
// =============
|
||||||
|
|
||||||
%macro reloc32 3
|
.macro reloc32 buffer, destination, addvalue
|
||||||
section RELOC320
|
section RELOC320
|
||||||
reloc_main:
|
reloc_main:
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov al, [%1]
|
mov al, [\buffer]
|
||||||
inc %1
|
inc \buffer
|
||||||
or eax, eax
|
or eax, eax
|
||||||
jz reloc_endx
|
jzs reloc_endx
|
||||||
cmp al, 0xEF
|
cmp al, 0xEF
|
||||||
ja reloc_fx
|
ja reloc_fx
|
||||||
reloc_add:
|
reloc_add:
|
||||||
add %2, eax
|
add \destination, eax
|
||||||
%if 1
|
#if 1
|
||||||
mov eax, [%2]
|
mov eax, [\destination]
|
||||||
xchg ah, al
|
xchg ah, al
|
||||||
rol eax, 16
|
rol eax, 16
|
||||||
xchg ah, al
|
xchg ah, al
|
||||||
add eax, %3
|
add eax, \addvalue
|
||||||
mov [%2], eax
|
mov [\destination], eax
|
||||||
%else
|
#else
|
||||||
add [%2], %3
|
add [\destination], \addvalue
|
||||||
%endif
|
#endif
|
||||||
jmps reloc_main
|
jmps reloc_main
|
||||||
reloc_fx:
|
reloc_fx:
|
||||||
and al, 0x0F
|
and al, 0x0F
|
||||||
shl eax, 16
|
shl eax, 16
|
||||||
mov ax, [%1]
|
mov ax, [\buffer]
|
||||||
add %1, byte 2
|
add \buffer, 2
|
||||||
section REL32BIG
|
section REL32BIG
|
||||||
or eax, eax
|
or eax, eax
|
||||||
jnz reloc_add
|
jnzs reloc_add
|
||||||
mov eax, [%1]
|
mov eax, [\buffer]
|
||||||
add %1, byte 4
|
add \buffer, 4
|
||||||
section RELOC32J
|
section RELOC32J
|
||||||
jmps reloc_add
|
jmps reloc_add
|
||||||
reloc_endx:
|
reloc_endx:
|
||||||
section REL32END
|
section REL32END
|
||||||
%endmacro
|
.endm
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
;; =============
|
;; =============
|
||||||
;; ============= 32-BIT CALL TRICK UNFILTER WITH MostRecentlyUsed BUFFER
|
;; ============= 32-BIT CALL TRICK UNFILTER WITH MostRecentlyUsed BUFFER
|
||||||
;; =============
|
;; =============
|
||||||
|
|||||||
Reference in New Issue
Block a user