-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpolymorhp.s
More file actions
112 lines (95 loc) · 1.46 KB
/
Copy pathpolymorhp.s
File metadata and controls
112 lines (95 loc) · 1.46 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
; RAX = START, RDI = END, RDX = FUNC ADDR, R8 = LEN, R9 = NUMBER
PUSH_ALL
mov rcx, rdi
sub rcx, rax
sub rcx, r8
.loop_start:
PUSH_ALL
mov r15, rax
mov r14, rdx
mov rax, rcx
mov rcx, r9
.finding_equalreplace: ; LOOP SUR LE NOMBRE DE R9 NUMBERS DONC MANIERES DE MODIFIER
PUSH_ALLr
xor rax, rax
NOP
NOP
NOP
NOP
mov rsi, r15
mov rdi, rdx
mov r9, rcx
dec r9
mov rcx, r8
.cmpbfind_eq:
mov r14b, byte [rsi]
mov r15b, byte [rdi]
cmp r14b, r15b
jne .quit_loopfind_eq
.skipfind_eq:
inc rsi ; Le code
inc rdi ; Les nombres
loop .cmpbfind_eq
inc rax
.quit_loopfind_eq:
POP_ALLr
test rax, rax
jnz .equlreplace
add rdx, r8
loop .finding_equalreplace
jmp .retreplace
.equlreplace:
mov rcx, r8
PUSH_ALLr
xor rax, rax
NOP
NOP
NOP
NOP
mov rdi, [rbp + 16]
add rdi, mydata.urandom_path
;lea rdi, [rel urandom_path]
xor rsi, rsi
NOP
NOP
NOP
NOP
mov rax, SYS_open
syscall
mov r12, rax
mov rdi, r12
mov rsi, [rbp + 16]
add rsi, mydata.randbuf
;lea rsi, [rel randbuf]
mov rdx, 8
mov rax, SYS_read
syscall
mov rdi, r12
mov rax, SYS_close
syscall
mov rax, [rbp + 16]
add rax, mydata.randbuf
mov rax, [rax]
xor rdx, rdx
NOP
NOP
NOP
NOP
mov rcx, r9
div rcx
mov rax, rdx
POP_ALLr
; r15 le code
; r14 les instructions
imul r8, rax
add r14, r8
mov rsi, r14
mov rdi, r15
rep movsb
.retreplace:
POP_ALL
inc rax
dec rcx
test rcx, rcx
jne .loop_start
POP_ALL