ronin-code-asm 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. data/.document +4 -0
  3. data/.editorconfig +11 -0
  4. data/.github/workflows/ruby.yml +31 -0
  5. data/.gitignore +11 -0
  6. data/.mailmap +1 -0
  7. data/.rspec +1 -0
  8. data/.ruby-version +1 -0
  9. data/.yardopts +1 -0
  10. data/COPYING.txt +165 -0
  11. data/ChangeLog.md +44 -0
  12. data/Gemfile +25 -0
  13. data/README.md +166 -0
  14. data/Rakefile +39 -0
  15. data/data/os/freebsd/amd64/syscalls.yml +415 -0
  16. data/data/os/freebsd/x86/syscalls.yml +415 -0
  17. data/data/os/linux/amd64/syscalls.yml +306 -0
  18. data/data/os/linux/x86/syscalls.yml +339 -0
  19. data/gemspec.yml +26 -0
  20. data/lib/ronin/code/asm/archs/amd64.rb +100 -0
  21. data/lib/ronin/code/asm/archs/x86.rb +170 -0
  22. data/lib/ronin/code/asm/archs.rb +22 -0
  23. data/lib/ronin/code/asm/config.rb +33 -0
  24. data/lib/ronin/code/asm/immediate_operand.rb +84 -0
  25. data/lib/ronin/code/asm/instruction.rb +66 -0
  26. data/lib/ronin/code/asm/memory_operand.rb +119 -0
  27. data/lib/ronin/code/asm/os/freebsd.rb +35 -0
  28. data/lib/ronin/code/asm/os/linux.rb +35 -0
  29. data/lib/ronin/code/asm/os/os.rb +47 -0
  30. data/lib/ronin/code/asm/os.rb +57 -0
  31. data/lib/ronin/code/asm/program.rb +509 -0
  32. data/lib/ronin/code/asm/register.rb +111 -0
  33. data/lib/ronin/code/asm/shellcode.rb +75 -0
  34. data/lib/ronin/code/asm/syntax/att.rb +164 -0
  35. data/lib/ronin/code/asm/syntax/common.rb +241 -0
  36. data/lib/ronin/code/asm/syntax/intel.rb +150 -0
  37. data/lib/ronin/code/asm/syntax.rb +22 -0
  38. data/lib/ronin/code/asm/version.rb +28 -0
  39. data/lib/ronin/code/asm.rb +68 -0
  40. data/ronin-code-asm.gemspec +62 -0
  41. data/spec/asm_spec.rb +14 -0
  42. data/spec/config_spec.rb +10 -0
  43. data/spec/immediate_operand_spec.rb +79 -0
  44. data/spec/instruction_spec.rb +62 -0
  45. data/spec/memory_operand_spec.rb +80 -0
  46. data/spec/os_spec.rb +68 -0
  47. data/spec/program_spec.rb +439 -0
  48. data/spec/register_spec.rb +112 -0
  49. data/spec/shellcode_spec.rb +58 -0
  50. data/spec/spec_helper.rb +7 -0
  51. data/spec/syntax/att_spec.rb +181 -0
  52. data/spec/syntax/common_spec.rb +42 -0
  53. data/spec/syntax/intel_spec.rb +174 -0
  54. metadata +143 -0
@@ -0,0 +1,306 @@
1
+ ---
2
+ :read: 0
3
+ :write: 1
4
+ :open: 2
5
+ :close: 3
6
+ :stat: 4
7
+ :fstat: 5
8
+ :lstat: 6
9
+ :poll: 7
10
+ :lseek: 8
11
+ :mmap: 9
12
+ :mprotect: 10
13
+ :munmap: 11
14
+ :brk: 12
15
+ :rt_sigaction: 13
16
+ :rt_sigprocmask: 14
17
+ :rt_sigreturn: 15
18
+ :ioctl: 16
19
+ :pread64: 17
20
+ :pwrite64: 18
21
+ :readv: 19
22
+ :writev: 20
23
+ :access: 21
24
+ :pipe: 22
25
+ :select: 23
26
+ :sched_yield: 24
27
+ :mremap: 25
28
+ :msync: 26
29
+ :mincore: 27
30
+ :madvise: 28
31
+ :shmget: 29
32
+ :shmat: 30
33
+ :shmctl: 31
34
+ :dup: 32
35
+ :dup2: 33
36
+ :pause: 34
37
+ :nanosleep: 35
38
+ :getitimer: 36
39
+ :alarm: 37
40
+ :setitimer: 38
41
+ :getpid: 39
42
+ :sendfile: 40
43
+ :socket: 41
44
+ :connect: 42
45
+ :accept: 43
46
+ :sendto: 44
47
+ :recvfrom: 45
48
+ :sendmsg: 46
49
+ :recvmsg: 47
50
+ :shutdown: 48
51
+ :bind: 49
52
+ :listen: 50
53
+ :getsockname: 51
54
+ :getpeername: 52
55
+ :socketpair: 53
56
+ :setsockopt: 54
57
+ :getsockopt: 55
58
+ :clone: 56
59
+ :fork: 57
60
+ :vfork: 58
61
+ :execve: 59
62
+ :exit: 60
63
+ :wait4: 61
64
+ :kill: 62
65
+ :uname: 63
66
+ :semget: 64
67
+ :semop: 65
68
+ :semctl: 66
69
+ :shmdt: 67
70
+ :msgget: 68
71
+ :msgsnd: 69
72
+ :msgrcv: 70
73
+ :msgctl: 71
74
+ :fcntl: 72
75
+ :flock: 73
76
+ :fsync: 74
77
+ :fdatasync: 75
78
+ :truncate: 76
79
+ :ftruncate: 77
80
+ :getdents: 78
81
+ :getcwd: 79
82
+ :chdir: 80
83
+ :fchdir: 81
84
+ :rename: 82
85
+ :mkdir: 83
86
+ :rmdir: 84
87
+ :creat: 85
88
+ :link: 86
89
+ :unlink: 87
90
+ :symlink: 88
91
+ :readlink: 89
92
+ :chmod: 90
93
+ :fchmod: 91
94
+ :chown: 92
95
+ :fchown: 93
96
+ :lchown: 94
97
+ :umask: 95
98
+ :gettimeofday: 96
99
+ :getrlimit: 97
100
+ :getrusage: 98
101
+ :sysinfo: 99
102
+ :times: 100
103
+ :ptrace: 101
104
+ :getuid: 102
105
+ :syslog: 103
106
+ # at the very end the stuff that never runs during the benchmarks
107
+ :getgid: 104
108
+ :setuid: 105
109
+ :setgid: 106
110
+ :geteuid: 107
111
+ :getegid: 108
112
+ :setpgid: 109
113
+ :getppid: 110
114
+ :getpgrp: 111
115
+ :setsid: 112
116
+ :setreuid: 113
117
+ :setregid: 114
118
+ :getgroups: 115
119
+ :setgroups: 116
120
+ :setresuid: 117
121
+ :getresuid: 118
122
+ :setresgid: 119
123
+ :getresgid: 120
124
+ :getpgid: 121
125
+ :setfsuid: 122
126
+ :setfsgid: 123
127
+ :getsid: 124
128
+ :capget: 125
129
+ :capset: 126
130
+ :rt_sigpending: 127
131
+ :rt_sigtimedwait: 128
132
+ :rt_sigqueueinfo: 129
133
+ :rt_sigsuspend: 130
134
+ :sigaltstack: 131
135
+ :utime: 132
136
+ :mknod: 133
137
+ # Only needed for a.out
138
+ :uselib: 134
139
+ :personality: 135
140
+ :ustat: 136
141
+ :statfs: 137
142
+ :fstatfs: 138
143
+ :sysfs: 139
144
+ :getpriority: 140
145
+ :setpriority: 141
146
+ :sched_setparam: 142
147
+ :sched_getparam: 143
148
+ :sched_setscheduler: 144
149
+ :sched_getscheduler: 145
150
+ :sched_get_priority_max: 146
151
+ :sched_get_priority_min: 147
152
+ :sched_rr_get_interval: 148
153
+ :mlock: 149
154
+ :munlock: 150
155
+ :mlockall: 151
156
+ :munlockall: 152
157
+ :vhangup: 153
158
+ :modify_ldt: 154
159
+ :pivot_root: 155
160
+ :_sysctl: 156
161
+ :prctl: 157
162
+ :arch_prctl: 158
163
+ :adjtimex: 159
164
+ :setrlimit: 160
165
+ :chroot: 161
166
+ :sync: 162
167
+ :acct: 163
168
+ :settimeofday: 164
169
+ :mount: 165
170
+ :umount2: 166
171
+ :swapon: 167
172
+ :swapoff: 168
173
+ :reboot: 169
174
+ :sethostname: 170
175
+ :setdomainname: 171
176
+ :iopl: 172
177
+ :ioperm: 173
178
+ :create_module: 174
179
+ :init_module: 175
180
+ :delete_module: 176
181
+ :get_kernel_syms: 177
182
+ :query_module: 178
183
+ :quotactl: 179
184
+ :nfsservctl: 180
185
+ # reserved for LiS/STREAMS
186
+ :getpmsg: 181
187
+ :putpmsg: 182
188
+ # reserved for AFS
189
+ :afs_syscall: 183
190
+ # reserved for tux
191
+ :tuxcall: 184
192
+ :security: 185
193
+ :gettid: 186
194
+ :readahead: 187
195
+ :setxattr: 188
196
+ :lsetxattr: 189
197
+ :fsetxattr: 190
198
+ :getxattr: 191
199
+ :lgetxattr: 192
200
+ :fgetxattr: 193
201
+ :listxattr: 194
202
+ :llistxattr: 195
203
+ :flistxattr: 196
204
+ :removexattr: 197
205
+ :lremovexattr: 198
206
+ :fremovexattr: 199
207
+ :tkill: 200
208
+ :time: 201
209
+ :futex: 202
210
+ :sched_setaffinity: 203
211
+ :sched_getaffinity: 204
212
+ :set_thread_area: 205
213
+ :io_setup: 206
214
+ :io_destroy: 207
215
+ :io_getevents: 208
216
+ :io_submit: 209
217
+ :io_cancel: 210
218
+ :get_thread_area: 211
219
+ :lookup_dcookie: 212
220
+ :epoll_create: 213
221
+ :epoll_ctl_old: 214
222
+ :epoll_wait_old: 215
223
+ :remap_file_pages: 216
224
+ :getdents64: 217
225
+ :set_tid_address: 218
226
+ :restart_syscall: 219
227
+ :semtimedop: 220
228
+ :fadvise64: 221
229
+ :timer_create: 222
230
+ :timer_settime: 223
231
+ :timer_gettime: 224
232
+ :timer_getoverrun: 225
233
+ :timer_delete: 226
234
+ :clock_settime: 227
235
+ :clock_gettime: 228
236
+ :clock_getres: 229
237
+ :clock_nanosleep: 230
238
+ :exit_group: 231
239
+ :epoll_wait: 232
240
+ :epoll_ctl: 233
241
+ :tgkill: 234
242
+ :utimes: 235
243
+ :vserver: 236
244
+ :mbind: 237
245
+ :set_mempolicy: 238
246
+ :get_mempolicy: 239
247
+ :mq_open: 240
248
+ :mq_unlink: 241
249
+ :mq_timedsend: 242
250
+ :mq_timedreceive: 243
251
+ :mq_notify: 244
252
+ :mq_getsetattr: 245
253
+ :kexec_load: 246
254
+ :waitid: 247
255
+ :add_key: 248
256
+ :request_key: 249
257
+ :keyctl: 250
258
+ :ioprio_set: 251
259
+ :ioprio_get: 252
260
+ :inotify_init: 253
261
+ :inotify_add_watch: 254
262
+ :inotify_rm_watch: 255
263
+ :migrate_pages: 256
264
+ :openat: 257
265
+ :mkdirat: 258
266
+ :mknodat: 259
267
+ :fchownat: 260
268
+ :futimesat: 261
269
+ :newfstatat: 262
270
+ :unlinkat: 263
271
+ :renameat: 264
272
+ :linkat: 265
273
+ :symlinkat: 266
274
+ :readlinkat: 267
275
+ :fchmodat: 268
276
+ :faccessat: 269
277
+ :pselect6: 270
278
+ :ppoll: 271
279
+ :unshare: 272
280
+ :set_robust_list: 273
281
+ :get_robust_list: 274
282
+ :splice: 275
283
+ :tee: 276
284
+ :sync_file_range: 277
285
+ :vmsplice: 278
286
+ :move_pages: 279
287
+ :utimensat: 280
288
+ :epoll_pwait: 281
289
+ :signalfd: 282
290
+ :timerfd_create: 283
291
+ :eventfd: 284
292
+ :fallocate: 285
293
+ :timerfd_settime: 286
294
+ :timerfd_gettime: 287
295
+ :accept4: 288
296
+ :signalfd4: 289
297
+ :eventfd2: 290
298
+ :epoll_create1: 291
299
+ :dup3: 292
300
+ :pipe2: 293
301
+ :inotify_init1: 294
302
+ :preadv: 295
303
+ :pwritev: 296
304
+ :rt_tgsigqueueinfo: 297
305
+ :perf_event_open: 298
306
+ :recvmmsg: 299
@@ -0,0 +1,339 @@
1
+ ---
2
+ :restart_syscall: 0
3
+ :exit: 1
4
+ :fork: 2
5
+ :read: 3
6
+ :write: 4
7
+ :open: 5
8
+ :close: 6
9
+ :waitpid: 7
10
+ :creat: 8
11
+ :link: 9
12
+ :unlink: 10
13
+ :execve: 11
14
+ :chdir: 12
15
+ :time: 13
16
+ :mknod: 14
17
+ :chmod: 15
18
+ :lchown: 16
19
+ :break: 17
20
+ :oldstat: 18
21
+ :lseek: 19
22
+ :getpid: 20
23
+ :mount: 21
24
+ :umount: 22
25
+ :setuid: 23
26
+ :getuid: 24
27
+ :stime: 25
28
+ :ptrace: 26
29
+ :alarm: 27
30
+ :oldfstat: 28
31
+ :pause: 29
32
+ :utime: 30
33
+ :stty: 31
34
+ :gtty: 32
35
+ :access: 33
36
+ :nice: 34
37
+ :ftime: 35
38
+ :sync: 36
39
+ :kill: 37
40
+ :rename: 38
41
+ :mkdir: 39
42
+ :rmdir: 40
43
+ :dup: 41
44
+ :pipe: 42
45
+ :times: 43
46
+ :prof: 44
47
+ :brk: 45
48
+ :setgid: 46
49
+ :getgid: 47
50
+ :signal: 48
51
+ :geteuid: 49
52
+ :getegid: 50
53
+ :acct: 51
54
+ :umount2: 52
55
+ :lock: 53
56
+ :ioctl: 54
57
+ :fcntl: 55
58
+ :mpx: 56
59
+ :setpgid: 57
60
+ :ulimit: 58
61
+ :oldolduname: 59
62
+ :umask: 60
63
+ :chroot: 61
64
+ :ustat: 62
65
+ :dup2: 63
66
+ :getppid: 64
67
+ :getpgrp: 65
68
+ :setsid: 66
69
+ :sigaction: 67
70
+ :sgetmask: 68
71
+ :ssetmask: 69
72
+ :setreuid: 70
73
+ :setregid: 71
74
+ :sigsuspend: 72
75
+ :sigpending: 73
76
+ :sethostname: 74
77
+ :setrlimit: 75
78
+ :getrlimit: 76 # Back compatible 2Gig limited rlimit
79
+ :getrusage: 77
80
+ :gettimeofday: 78
81
+ :settimeofday: 79
82
+ :getgroups: 80
83
+ :setgroups: 81
84
+ :select: 82
85
+ :symlink: 83
86
+ :oldlstat: 84
87
+ :readlink: 85
88
+ :uselib: 86
89
+ :swapon: 87
90
+ :reboot: 88
91
+ :readdir: 89
92
+ :mmap: 90
93
+ :munmap: 91
94
+ :truncate: 92
95
+ :ftruncate: 93
96
+ :fchmod: 94
97
+ :fchown: 95
98
+ :getpriority: 96
99
+ :setpriority: 97
100
+ :profil: 98
101
+ :statfs: 99
102
+ :fstatfs: 100
103
+ :ioperm: 101
104
+ :socketcall: 102
105
+ :syslog: 103
106
+ :setitimer: 104
107
+ :getitimer: 105
108
+ :stat: 106
109
+ :lstat: 107
110
+ :fstat: 108
111
+ :olduname: 109
112
+ :iopl: 110
113
+ :vhangup: 111
114
+ :idle: 112
115
+ :vm86old: 113
116
+ :wait4: 114
117
+ :swapoff: 115
118
+ :sysinfo: 116
119
+ :ipc: 117
120
+ :fsync: 118
121
+ :sigreturn: 119
122
+ :clone: 120
123
+ :setdomainname: 121
124
+ :uname: 122
125
+ :modify_ldt: 123
126
+ :adjtimex: 124
127
+ :mprotect: 125
128
+ :sigprocmask: 126
129
+ :create_module: 127
130
+ :init_module: 128
131
+ :delete_module: 129
132
+ :get_kernel_syms: 130
133
+ :quotactl: 131
134
+ :getpgid: 132
135
+ :fchdir: 133
136
+ :bdflush: 134
137
+ :sysfs: 135
138
+ :personality: 136
139
+ :afs_syscall: 137 # Syscall for Andrew File System
140
+ :setfsuid: 138
141
+ :setfsgid: 139
142
+ :_llseek: 140
143
+ :getdents: 141
144
+ :_newselect: 142
145
+ :flock: 143
146
+ :msync: 144
147
+ :readv: 145
148
+ :writev: 146
149
+ :getsid: 147
150
+ :fdatasync: 148
151
+ :_sysctl: 149
152
+ :mlock: 150
153
+ :munlock: 151
154
+ :mlockall: 152
155
+ :munlockall: 153
156
+ :sched_setparam: 154
157
+ :sched_getparam: 155
158
+ :sched_setscheduler: 156
159
+ :sched_getscheduler: 157
160
+ :sched_yield: 158
161
+ :sched_get_priority_max: 159
162
+ :sched_get_priority_min: 160
163
+ :sched_rr_get_interval: 161
164
+ :nanosleep: 162
165
+ :mremap: 163
166
+ :setresuid: 164
167
+ :getresuid: 165
168
+ :vm86: 166
169
+ :query_module: 167
170
+ :poll: 168
171
+ :nfsservctl: 169
172
+ :setresgid: 170
173
+ :getresgid: 171
174
+ :prctl: 172
175
+ :rt_sigreturn: 173
176
+ :rt_sigaction: 174
177
+ :rt_sigprocmask: 175
178
+ :rt_sigpending: 176
179
+ :rt_sigtimedwait: 177
180
+ :rt_sigqueueinfo: 178
181
+ :rt_sigsuspend: 179
182
+ :pread64: 180
183
+ :pwrite64: 181
184
+ :chown: 182
185
+ :getcwd: 183
186
+ :capget: 184
187
+ :capset: 185
188
+ :sigaltstack: 186
189
+ :sendfile: 187
190
+ :getpmsg: 188 # some people actually want streams
191
+ :putpmsg: 189 # some people actually want streams
192
+ :vfork: 190
193
+ :ugetrlimit: 191 # SuS compliant getrlimit
194
+ :mmap2: 192
195
+ :truncate64: 193
196
+ :ftruncate64: 194
197
+ :stat64: 195
198
+ :lstat64: 196
199
+ :fstat64: 197
200
+ :lchown32: 198
201
+ :getuid32: 199
202
+ :getgid32: 200
203
+ :geteuid32: 201
204
+ :getegid32: 202
205
+ :setreuid32: 203
206
+ :setregid32: 204
207
+ :getgroups32: 205
208
+ :setgroups32: 206
209
+ :fchown32: 207
210
+ :setresuid32: 208
211
+ :getresuid32: 209
212
+ :setresgid32: 210
213
+ :getresgid32: 211
214
+ :chown32: 212
215
+ :setuid32: 213
216
+ :setgid32: 214
217
+ :setfsuid32: 215
218
+ :setfsgid32: 216
219
+ :pivot_root: 217
220
+ :mincore: 218
221
+ :madvise: 219
222
+ :madvise1: 219 # delete when C lib stub is removed
223
+ :getdents64: 220
224
+ :fcntl64: 221
225
+ # 223 is unused
226
+ :gettid: 224
227
+ :readahead: 225
228
+ :setxattr: 226
229
+ :lsetxattr: 227
230
+ :fsetxattr: 228
231
+ :getxattr: 229
232
+ :lgetxattr: 230
233
+ :fgetxattr: 231
234
+ :listxattr: 232
235
+ :llistxattr: 233
236
+ :flistxattr: 234
237
+ :removexattr: 235
238
+ :lremovexattr: 236
239
+ :fremovexattr: 237
240
+ :tkill: 238
241
+ :sendfile64: 239
242
+ :futex: 240
243
+ :sched_setaffinity: 241
244
+ :sched_getaffinity: 242
245
+ :set_thread_area: 243
246
+ :get_thread_area: 244
247
+ :io_setup: 245
248
+ :io_destroy: 246
249
+ :io_getevents: 247
250
+ :io_submit: 248
251
+ :io_cancel: 249
252
+ :fadvise64: 250
253
+ # 251 is available for reuse (was briefly sys_set_zone_reclaim)
254
+ :exit_group: 252
255
+ :lookup_dcookie: 253
256
+ :epoll_create: 254
257
+ :epoll_ctl: 255
258
+ :epoll_wait: 256
259
+ :remap_file_pages: 257
260
+ :set_tid_address: 258
261
+ :timer_create: 259
262
+ :timer_settime: 260 # (timer_create+1)
263
+ :timer_gettime: 261 # (timer_create+2)
264
+ :timer_getoverrun: 262 # (timer_create+3)
265
+ :timer_delete: 263 # (timer_create+4)
266
+ :clock_settime: 264 # (timer_create+5)
267
+ :clock_gettime: 265 # (timer_create+6)
268
+ :clock_getres: 266 # (timer_create+7)
269
+ :clock_nanosleep: 267 # (timer_create+8)
270
+ :statfs64: 268
271
+ :fstatfs64: 269
272
+ :tgkill: 270
273
+ :utimes: 271
274
+ :fadvise64_64: 272
275
+ :vserver: 273
276
+ :mbind: 274
277
+ :get_mempolicy: 275
278
+ :set_mempolicy: 276
279
+ :mq_open: 277
280
+ :mq_unlink: 278 # (mq_open+1)
281
+ :mq_timedsend: 279 # (mq_open+2)
282
+ :mq_timedreceive: 280 # (mq_open+3)
283
+ :mq_notify: 281 # (mq_open+4)
284
+ :mq_getsetattr: 282 # (mq_open+5)
285
+ :kexec_load: 283
286
+ :waitid: 284
287
+ # sys_setaltroot: 285
288
+ :add_key: 286
289
+ :request_key: 287
290
+ :keyctl: 288
291
+ :ioprio_set: 289
292
+ :ioprio_get: 290
293
+ :inotify_init: 291
294
+ :inotify_add_watch: 292
295
+ :inotify_rm_watch: 293
296
+ :migrate_pages: 294
297
+ :openat: 295
298
+ :mkdirat: 296
299
+ :mknodat: 297
300
+ :fchownat: 298
301
+ :futimesat: 299
302
+ :fstatat64: 300
303
+ :unlinkat: 301
304
+ :renameat: 302
305
+ :linkat: 303
306
+ :symlinkat: 304
307
+ :readlinkat: 305
308
+ :fchmodat: 306
309
+ :faccessat: 307
310
+ :pselect6: 308
311
+ :ppoll: 309
312
+ :unshare: 310
313
+ :set_robust_list: 311
314
+ :get_robust_list: 312
315
+ :splice: 313
316
+ :sync_file_range: 314
317
+ :tee: 315
318
+ :vmsplice: 316
319
+ :move_pages: 317
320
+ :getcpu: 318
321
+ :epoll_pwait: 319
322
+ :utimensat: 320
323
+ :signalfd: 321
324
+ :timerfd_create: 322
325
+ :eventfd: 323
326
+ :fallocate: 324
327
+ :timerfd_settime: 325
328
+ :timerfd_gettime: 326
329
+ :signalfd4: 327
330
+ :eventfd2: 328
331
+ :epoll_create1: 329
332
+ :dup3: 330
333
+ :pipe2: 331
334
+ :inotify_init1: 332
335
+ :preadv: 333
336
+ :pwritev: 334
337
+ :rt_tgsigqueueinfo: 335
338
+ :perf_event_open: 336
339
+ :recvmmsg: 337
data/gemspec.yml ADDED
@@ -0,0 +1,26 @@
1
+ name: ronin-code-asm
2
+ summary: A Ruby DSL for crafting Assembly programs and Shellcode.
3
+ description:
4
+ ronin-code-asm is a Ruby DSL for crafting Assembly programs and shellcode.
5
+
6
+ license: LGPL-3.0
7
+ authors: Postmodern
8
+ email: postmodern.mod3@gmail.com
9
+ homepage: https://github.com/ronin-rb/ronin-code-asm#readme
10
+ has_yard: true
11
+
12
+ requirements: yasm >= 0.6.0
13
+ required_ruby_version: ">= 3.0.0"
14
+
15
+ metadata:
16
+ documentation_uri: https://ronin-rb.dev/docs/ronin-code-asm/frames
17
+ source_code_uri: https://github.com/ronin-rb/ronin-code-asm
18
+ bug_tracker_uri: https://github.com/ronin-rb/ronin-code-asm/issues
19
+ changelog_uri: https://github.com/ronin-rb/ronin-code-asm/blob/master/ChangeLog.md
20
+ rubygems_mfa_required: 'true'
21
+
22
+ dependencies:
23
+ ruby-yasm: ~> 0.3
24
+
25
+ development_dependencies:
26
+ bundler: ~> 2.0