I am trying to solve a CTF challenge but I am very much out of my depth and nothing online is helping me very much. This is what I'm working with currently
| 0x55b3fd508a41 4889e5 mov rbp, rsp
| 0x55b3fd508a44 4881ec900100. sub rsp, 0x190
| 0x55b3fd508a4b 89bd7cfeffff mov dword [local_184h], edi ; argc
| 0x55b3fd508a51 4889b570feff. mov qword [local_190h], rsi ; argv
| 0x55b3fd508a58 64488b042528. mov rax, qword fs:[0x28] ; [0x28:8]=-1 ; '(' ; 40
| 0x55b3fd508a61 488945f8 mov qword [local_8h], rax
| 0x55b3fd508a65 31c0 xor eax, eax
| 0x55b3fd508a67 c78588feffff. mov dword [local_178h], 0x2d ; '-' ; 45
| 0x55b3fd508a71 c7858cfeffff. mov dword [local_174h], 0x32 ; '2' ; 50
| 0x55b3fd508a7b 83bd7cfeffff. cmp dword [local_184h], 1 ; rdi ; [0x1:4]=-1
| ,=< 0x55b3fd508a82 0f8e77010000 jle 0x55b3fd508bff ;[1]
| | 0x55b3fd508a88 488b8570feff. mov rax, qword [local_190h]
| | 0x55b3fd508a8f 4883c008 add rax, 8
| | 0x55b3fd508a93 488b00 mov rax, qword [rax]
| | 0x55b3fd508a96 488d35fb0200. lea rsi, str.calc ; 0x55b3fd508d98 ; "calc"
| | 0x55b3fd508a9d 4889c7 mov rdi, rax
I am interested in the line 0x55b3fd508a7b
, what does local_184h
mean? How do I edit this value in order to change the result of the upcoming jle
? Or, how do I change the result of the jle
command without having to change local_184h
? I read that it checks the sign flag so I edited the rflags
register to be 0x0080
less than it was, hoping that would change the outcome of the jle
but it didn't.