-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathminer.asm
More file actions
125 lines (125 loc) · 3.28 KB
/
miner.asm
File metadata and controls
125 lines (125 loc) · 3.28 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
113
114
115
116
117
118
119
120
121
122
123
124
125
MAX_NONCE:
.long 5
SHA256:
push rbp
mov rbp, rsp
sub rsp, 32
mov QWORD PTR [rbp-24], rdi
mov rax, QWORD PTR [rbp-24]
mov rdi, rax
call strlen
mov rdx, rax
mov rax, QWORD PTR [rbp-24]
add rax, rdx
movabs rcx, 8319104414228247328
mov QWORD PTR [rax], rcx
mov BYTE PTR [rax+8], 0
mov rax, QWORD PTR [rbp-24]
mov QWORD PTR [rbp-8], rax
mov rax, QWORD PTR [rbp-8]
leave
ret
.LC0:
.string "%d%s%s%d"
.LC1:
.string "%*.*s"
.LC2:
.string "foo bar baz guux %s \n"
mine:
push rbp
mov rbp, rsp
sub rsp, 1200
mov DWORD PTR [rbp-1172], edi
mov QWORD PTR [rbp-1184], rsi
mov QWORD PTR [rbp-1192], rdx
mov DWORD PTR [rbp-1176], ecx
mov QWORD PTR [rbp-1024], 48
mov QWORD PTR [rbp-1016], 0
lea rdx, [rbp-1008]
mov eax, 0
mov ecx, 123
mov rdi, rdx
rep stosq
mov DWORD PTR [rbp-4], 0
jmp .L4
.L5:
lea rax, [rbp-1024]
mov rdi, rax
call strlen
mov rdx, rax
lea rax, [rbp-1024]
add rax, rdx
mov WORD PTR [rax], 48
add DWORD PTR [rbp-4], 1
.L4:
mov eax, DWORD PTR [rbp-4]
cmp eax, DWORD PTR [rbp-1176]
jl .L5
mov DWORD PTR [rbp-8], 0
jmp .L6
.L8:
mov edi, DWORD PTR [rbp-1176]
mov rsi, QWORD PTR [rbp-1192]
mov rcx, QWORD PTR [rbp-1184]
mov edx, DWORD PTR [rbp-1172]
lea rax, [rbp-1056]
mov r9d, edi
mov r8, rsi
mov esi, OFFSET FLAT:.LC0
mov rdi, rax
mov eax, 0
call sprintf
lea rax, [rbp-1056]
mov rdi, rax
call SHA256
mov QWORD PTR [rbp-16], rax
lea rax, [rbp-1024]
mov rdi, rax
call strlen
mov DWORD PTR [rbp-20], eax
mov rsi, QWORD PTR [rbp-16]
mov ecx, DWORD PTR [rbp-20]
mov edx, DWORD PTR [rbp-20]
lea rax, [rbp-1168]
mov r8, rsi
mov esi, OFFSET FLAT:.LC1
mov rdi, rax
mov eax, 0
call sprintf
lea rdx, [rbp-1168]
lea rax, [rbp-1024]
mov rsi, rdx
mov rdi, rax
call strcmp
mov DWORD PTR [rbp-24], eax
cmp DWORD PTR [rbp-24], 0
jne .L7
lea rax, [rbp-1168]
mov rsi, rax
mov edi, OFFSET FLAT:.LC2
mov eax, 0
call printf
.L7:
add DWORD PTR [rbp-8], 1
.L6:
mov eax, DWORD PTR MAX_NONCE[rip]
cmp DWORD PTR [rbp-8], eax
jle .L8
nop
leave
ret
.LC3:
.string "p"
.LC4:
.string "t"
main:
push rbp
mov rbp, rsp
mov ecx, 6
mov edx, OFFSET FLAT:.LC3
mov esi, OFFSET FLAT:.LC4
mov edi, 3
call mine
mov eax, 0
pop rbp
ret