Skip to main content

PicoCTF 2018 – Reverse Engineering - assembly 0


PicoCTF 2018 – Reverse Engineering  - assembly 0

Objective:
What does asm0(0xb6,0xc6) return? Submit the flag as a hexadecimal value (starting with '0x'). NOTE: Your submission for this question will NOT be in the normal flag format. Source [1]  located in the directory at /problems/assembly-0_0_5a220faedfaf4fbf26e6771960d4a359.
Hints:
(1)    basical assembly tutorial [2]  (2) assembly registers [3]

Source:

.intel_syntax noprefix
.bits 32
               
.global asm0

asm0:
                push      ebp                                                       
                mov       ebp,esp
                mov       eax,DWORD PTR [ebp+0x8]
                mov       ebx,DWORD PTR [ebp+0xc]
                mov       eax,ebx
                mov       esp,ebp
                pop        ebp       
                ret


Solution:

So  I spent about an hour watching youtube videos to try and understand assembly language to get his one.

Here is what I learned


This part
push      ebp                                                       
            mov       ebp,esp

has to do with the stack pointers getting setup for the program and really don’t mean a whole lot other than the stack is being created an this is where the pointers are set.

The parts that actually matter to this solution are
 mov       eax,DWORD PTR [ebp+0x8]  - This is putting the 1st variable in EAX which was 0xb6
 mov       ebx,DWORD PTR [ebp+0xc] –  This is putting the 2nd variable in to EBX which is 0xc6
 mov       eax,ebx                                                - this overwrites eax with ebx so now EAX is 0xc6

the next part of the assembly just kind of tears the program down and this particular assembly will always return what is in EAX

so it should return 0xc6

Here is a great little youtube video that help break it down that John Hammond already made



Comments

Popular posts from this blog

RingZero CTF - Cyrptography - You're Drunk

RingZero CTF - Cyptography - Your're Drunk Problem: Ayowe awxewr nwaalfw die tiy rgw fklf ua xgixiklrw! Tiy lew qwkxinw. Solution: So just looking at this one it looks like its formatted as a sentence. There is spacing between words, punctuation and capitalization. At fist I thought Cesar cipher, but I ran through some shifts and none of them came back with english words. So then I though substitution cipher. We know from frequency analysis of the English language some good starting points. The most common letter would be "E" The most common double letters would be "OO", "EE" and"SS"  so let start with that and see what we can come up with This site is a great resource for some of the assumptions I'm making here ( http://practicalcryptography.com/ciphers/monoalphabetic-substitution-category/simple-substitution/ ) I used this website to count the letter frequency for me ( https://www.dcode.fr/frequency-analysis ) ...

HacktheBox - Retired - Frolic

HacktheBox - Retired - Frolic Recon Let's start out with a threader3000 scan Some interesting results here Port 22 and 445 aren't uncommon… but 1880 and 9999 are.. Let's let nmap run through these ports  Option Selection: 1 nmap -p22,445,1880,9999 -sV -sC -T4 -Pn -oA 10.10.10.111 10.10.10.111 Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower. Starting Nmap 7.91 ( https://nmap.org ) at 2021-05-05 16:17 EDT Nmap scan report for 10.10.10.111 Host is up (0.060s latency). PORT     STATE SERVICE     VERSION 22/tcp   open  ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: |   2048 87:7b:91:2a:0f:11:b6:57:1e:cb:9f:77:cf:35:e2:21 (RSA) |   256 b7:9b:06:dd:c2:5e:28:44:78:41:1e:67:7d:1e:b7:62 (ECDSA) |_  256 21:cf:16:6d:82:a4:30:c3:c6:9c:d7:38:ba:b5:02:b0 (ED25519) 445/tcp  open  netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP) 1880/tcp open  http        Node.js (Express middlewar...

De-ICE: S1.140 - Write up

De-ICE: S1.140 https://www.vulnhub.com/entry/de-ice-s1140,57/ I've been doing a lot of hackthebox.eu boxes, I've decided to take a small break from those and focus on other vuln boxes for a while, A colleague told me about these ICE boxes he did for labs during school. So  I decided to check them out. Recon Since these are live CD's the first thing I need to do is find out the ip address of the live CD VM i'm running. My home network is 192.168.50.0/24 so I started with a small updown nmap scan of my entire subnet to find the target VM nmap -T4 -oX /root/Desktop/ice/nmap.xml 192.168.50.0/24 I then converted the XML output to HTML to make it pretty xsltproc /root/Desktop/ice/nmap.xml -o /root/Desktop/ice/nmap.html Found the target at 192.168.50.176 So now let's rescan the open ports with the -A switch to finger the OS/Services Let's recap what we found Port 21 PROFTPD 1.3.4a Port 22 OPenSSH 5.9p1 Port 80 Apa...