-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtrasher.s
More file actions
45 lines (39 loc) · 1.72 KB
/
trasher.s
File metadata and controls
45 lines (39 loc) · 1.72 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
.name "Trasher"
.comment "I need more trash..."
# r2 - счетчик смещения байт
# r3 - реверсированный счетчик
# r10 - содержимое памяти для копирования
# r16 - const = 4, размер смещения счетчика
# instructions
ld %2147483648, r5 # записываем константу
ld %1, r14
ld %4278190080, r15 # записываем константу для маски операции И для выхода из цикла копирования
ld %4, r16 # записываем константу для изменений счетчиков
and 100, r9, r9 # trash
and 100, r9, r9 # trash
and %100, r9, r9 # trash
and %100, r9, r9 # trash
and %100, r9, r9 # trash
start:
ld %0, r2 # смещение по умолчанию 0
ld %125, r3 # число байт для записи без мусора 61
sti r1, %:copy_cycle, %1 # обновляем аргумент live
copy_cycle:
live %21 # говорим что живы
ldi %:start, r2, r10 # записываем 4 байта от start + r2
sti r10, %288, r2 # записываем этот кусок после себя
add r2, r16, r2 # увеличиваем смещение
sub r3, r16, r3 # уменьшаем количество байт для копирования
and %100, r9, r9 # trash
and %100, r9, r9 # trash
and %100, r9, r9 # trash
and %100, r9, r9 # trash
and %100, r9, r9 # trash
and %100, r9, r9 # trash
and %100, r9, r9 # trash
and %100, r9, r9 # trash
# условие цикла копирования
sub r3, r14, r13
and r13, %4278190080, r12
zjmp %:copy_cycle
end: