./ROPgadget.py --binary ./test-suite-binaries/macho-x64-ls Gadgets information ============================================================ 0x0000000100001d4b : add al, -0x7f ; add rax, rcx ; jmp rax 0x0000000100003565 : add al, 0 ; add byte ptr [rax], al ; jmp 0x1000034fc ; xor eax, eax ; pop rbp ; ret 0x0000000100001c2f : add al, byte ptr [rax] ; add byte ptr [rax - 0x77], cl ; ret 0x0000000100004d56 : add al, byte ptr [rax] ; add byte ptr [rcx], al ; ret 0x0000000100003b7b : add byte ptr [rax + 0x39], cl ; ret 0x0000000100001d48 : add byte ptr [rax + 0x63], cl ; add al, -0x7f ; add rax, rcx ; jmp rax 0x0000000100002cf4 : add byte ptr [rax + 0x63], cl ; or al, -0x76 ; add rcx, rdx ; jmp rcx 0x0000000100003228 : add byte ptr [rax + 1], bh ; pop rbp ; ret 0x0000000100001c31 : add byte ptr [rax - 0x77], cl ; ret 0x00000001000037e3 : add byte ptr [rax], al ; add rsp, 8 ; pop rbx ; pop rbp ; ret 0x0000000100003286 : add byte ptr [rax], al ; jmp 0x10000322b ; xor eax, eax ; pop rbp ; ret 0x0000000100003567 : add byte ptr [rax], al ; jmp 0x1000034fa ; xor eax, eax ; pop rbp ; ret 0x0000000100003227 : add byte ptr [rax], al ; mov eax, 1 ; pop rbp ; ret 0x0000000100001d47 : add byte ptr [rax], al ; movsxd rax, dword ptr [rcx + rax*4] ; add rax, rcx ; jmp rax 0x0000000100002cf3 : add byte ptr [rax], al ; movsxd rcx, dword ptr [rdx + rcx*4] ; add rcx, rdx ; jmp rcx 0x0000000100001b45 : add byte ptr [rax], al ; pop rbp ; jmp rax 0x0000000100001858 : add byte ptr [rax], al ; pop rbp ; ret 0x0000000100003184 : add byte ptr [rax], al ; xor eax, eax ; add rsp, 0x10 ; pop rbp ; ret 0x0000000100003195 : add byte ptr [rax], al ; xor eax, eax ; pop rbp ; ret 0x0000000100004231 : add byte ptr [rax], dh ; ror byte ptr [rax - 0x73], 0xd ; call qword ptr [rdx] 0x0000000100004d58 : add byte ptr [rcx], al ; ret 0x00000001000033da : add cl, byte ptr [rcx - 0x7d] ; call qword ptr [rsi] 0x0000000100003b78 : add cl, dh ; out dx, eax ; add byte ptr [rax + 0x39], cl ; ret 0x0000000100001856 : add dword ptr [rax], eax ; add byte ptr [rax], al ; pop rbp ; ret 0x0000000100001b30 : add dword ptr [rbp + 0xd], esi ; mov eax, 0xffffffff ; pop rbp ; ret 0x0000000100001c81 : add dword ptr [rcx + rcx*8 - 0x7cb7cb8c], eax ; ret 0x0000000100004d55 : add eax, 0x1000002 ; ret 0x0000000100001b42 : add eax, 0x4a81 ; pop rbp ; jmp rax 0x0000000100001d4e : add eax, ecx ; jmp rax 0x0000000100002cfa : add ecx, edx ; jmp rcx 0x0000000100003189 : add esp, 0x10 ; pop rbp ; ret 0x0000000100003be6 : add esp, 0x60 ; pop rbx ; pop r14 ; pop rbp ; ret 0x000000010000348c : add esp, 8 ; pop rbx ; pop rbp ; ret 0x0000000100001c80 : add qword ptr [r9 + r9*8 - 0x7cb7cb8c], rax ; ret 0x0000000100001c2e : add r8b, byte ptr [r8] ; add byte ptr [rax - 0x77], cl ; ret 0x0000000100001d4d : add rax, rcx ; jmp rax 0x0000000100002cf9 : add rcx, rdx ; jmp rcx 0x0000000100003188 : add rsp, 0x10 ; pop rbp ; ret 0x0000000100003be5 : add rsp, 0x60 ; pop rbx ; pop r14 ; pop rbp ; ret 0x000000010000348b : add rsp, 8 ; pop rbx ; pop rbp ; ret 0x0000000100003192 : call 0x100004edc ; xor eax, eax ; pop rbp ; ret 0x00000001000023a7 : call qword ptr [rax] 0x0000000100003003 : call qword ptr [rcx] 0x0000000100004237 : call qword ptr [rdx] 0x00000001000033dd : call qword ptr [rsi] 0x00000001000030a7 : call rbx 0x000000010000238f : call rcx 0x00000001000036b4 : clc ; pop rbx ; pop r12 ; pop r14 ; pop r15 ; pop rbp ; ret 0x0000000100001b3f : dec dword ptr [rax - 0x75] ; add eax, 0x4a81 ; pop rbp ; jmp rax 0x000000010000492e : dec dword ptr [rax - 1] ; ret 0x000000010000315f : div byte ptr [rbp - 0x28] ; pop rbx ; pop r14 ; pop rbp ; ret 0x00000001000033d6 : enter -0x7cb7, -0x39 ; add cl, byte ptr [rcx - 0x7d] ; call qword ptr [rsi] 0x0000000100001988 : enter 0x77e, -0x48 ; add dword ptr [rax], eax ; add byte ptr [rax], al ; pop rbp ; ret 0x0000000100003161 : fcomp dword ptr [rbx + 0x41] ; pop rsi ; pop rbp ; ret 0x0000000100002fff : inc dword ptr [rcx + rdi*8 - 1] ; call qword ptr [rcx] 0x0000000100002da0 : int 0x80 0x0000000100003b79 : int1 ; out dx, eax ; add byte ptr [rax + 0x39], cl ; ret 0x0000000100001853 : jge 0x100001864 ; mov eax, 1 ; pop rbp ; ret 0x00000001000019e1 : jge 0x1000019f2 ; mov eax, 0xffffffff ; pop rbp ; ret 0x00000001000017f2 : jle 0x100001803 ; mov eax, 0xffffffff ; pop rbp ; ret 0x000000010000188a : jle 0x10000189b ; mov eax, 0xffffffff ; pop rbp ; ret 0x00000001000018df : jle 0x1000018f0 ; mov eax, 0xffffffff ; pop rbp ; ret 0x0000000100001934 : jle 0x100001945 ; mov eax, 0xffffffff ; pop rbp ; ret 0x0000000100001989 : jle 0x10000199a ; mov eax, 1 ; pop rbp ; ret 0x0000000100001a0f : jle 0x100001a20 ; mov eax, 1 ; pop rbp ; ret 0x0000000100001a5b : jle 0x100001a6c ; mov eax, 1 ; pop rbp ; ret 0x0000000100001aa7 : jle 0x100001ab8 ; mov eax, 1 ; pop rbp ; ret 0x0000000100003288 : jmp 0x100003229 ; xor eax, eax ; pop rbp ; ret 0x0000000100003569 : jmp 0x1000034f8 ; xor eax, eax ; pop rbp ; ret 0x0000000100003e67 : jmp qword ptr [rax] 0x0000000100004981 : jmp qword ptr [rdx] 0x0000000100003033 : jmp qword ptr [rip - 0x1d000005] 0x0000000100001b48 : jmp rax 0x0000000100002cfc : jmp rcx 0x0000000100002397 : jmp rdi 0x0000000100003037 : jmp rdx 0x0000000100001b31 : jne 0x100001b48 ; mov eax, 0xffffffff ; pop rbp ; ret 0x0000000100003160 : jne 0x100003140 ; pop rbx ; pop r14 ; pop rbp ; ret 0x0000000100003489 : jne 0x10000349a ; add rsp, 8 ; pop rbx ; pop rbp ; ret 0x00000001000017f4 : mov eax, 0xffffffff ; pop rbp ; ret 0x0000000100001855 : mov eax, 1 ; pop rbp ; ret 0x0000000100001b41 : mov eax, dword ptr [rip + 0x4a81] ; pop rbp ; jmp rax 0x0000000100001b40 : mov rax, qword ptr [rip + 0x4a81] ; pop rbp ; jmp rax 0x0000000100001d49 : movsxd rax, dword ptr [rcx + rax*4] ; add rax, rcx ; jmp rax 0x0000000100002cf5 : movsxd rcx, dword ptr [rdx + rcx*4] ; add rcx, rdx ; jmp rcx 0x0000000100002cf7 : or al, -0x76 ; add rcx, rdx ; jmp rcx 0x000000010000348e : or byte ptr [rbx + 0x5d], bl ; ret 0x0000000100001cb2 : or ecx, dword ptr [rax - 1] ; ret 0x0000000100003b7a : out dx, eax ; add byte ptr [rax + 0x39], cl ; ret 0x0000000100002381 : pop r12 ; pop r13 ; pop r14 ; pop r15 ; pop rbp ; ret 0x00000001000036b6 : pop r12 ; pop r14 ; pop r15 ; pop rbp ; ret 0x0000000100002383 : pop r13 ; pop r14 ; pop r15 ; pop rbp ; ret 0x0000000100002385 : pop r14 ; pop r15 ; pop rbp ; ret 0x0000000100003163 : pop r14 ; pop rbp ; ret 0x0000000100002387 : pop r15 ; pop rbp ; ret 0x0000000100001b47 : pop rbp ; jmp rax 0x0000000100002384 : pop rbp ; pop r14 ; pop r15 ; pop rbp ; ret 0x00000001000017f9 : pop rbp ; ret 0x00000001000036b5 : pop rbx ; pop r12 ; pop r14 ; pop r15 ; pop rbp ; ret 0x0000000100003162 : pop rbx ; pop r14 ; pop rbp ; ret 0x000000010000348f : pop rbx ; pop rbp ; ret 0x0000000100002388 : pop rdi ; pop rbp ; ret 0x0000000100002386 : pop rsi ; pop r15 ; pop rbp ; ret 0x0000000100003164 : pop rsi ; pop rbp ; ret 0x0000000100002382 : pop rsp ; pop r13 ; pop r14 ; pop r15 ; pop rbp ; ret 0x00000001000036b7 : pop rsp ; pop r14 ; pop r15 ; pop rbp ; ret 0x00000001000017fa : ret 0x0000000100004233 : ror byte ptr [rax - 0x73], 0xd ; call qword ptr [rdx] 0x0000000100001852 : sar dword ptr [rbp + 7], -0x48 ; add dword ptr [rax], eax ; add byte ptr [rax], al ; pop rbp ; ret 0x0000000100003226 : sbb al, 0 ; add byte ptr [rax + 1], bh ; pop rbp ; ret 0x0000000100003194 : sbb eax, 0xc0310000 ; pop rbp ; ret 0x000000010000315e : test esi, esi ; jne 0x100003142 ; pop rbx ; pop r14 ; pop rbp ; ret 0x000000010000315d : test r14, r14 ; jne 0x100003143 ; pop rbx ; pop r14 ; pop rbp ; ret 0x0000000100003186 : xor eax, eax ; add rsp, 0x10 ; pop rbp ; ret 0x0000000100003197 : xor eax, eax ; pop rbp ; ret Unique gadgets found: 115