Golang binaries are a bit hard to analyze but there are some tricks to locate the things and view what is doing the code.
Is possible to list all the go files compiled in the binary even in an striped binaries, in this case we have only one file gohello.go this is a good clue to guess what is doing the program.
On stripped binaries the runtime functions are not resolved so is more difficult to locate the user algorithms:
If we start from the entry point, we will found this mess:
The golang string initialization are encoded and is not displayed on the strings window.
How to locate main? if its not stripped just bp on [package name].main for example bp main.main, (you can locate the package-name searching strings with ".main")
And here is our main.main:
The code is:
So in a stripped binary we cant find the string "hello world" neither the initialization 0x1337 nor the comparator 0x1337, all this is obfuscated.
The initialization sequence is:
The procedure for locating main.main in stripped binaries is:
1. Click on the entry point and locate the runtime.mainPC pointer:
2. click on runtime.main function (LAB_0042B030):
3. locate the main.main call after the zero ifs:
4. click on it and here is the main:
The runtime is not obvious for example the fmt.Scanf() call perform several internal calls until reach the syscall, and in a stripped binary there are no function names.
In order to identify the functions one option is compile another binary with symbols and make function fingerprinting.
In Ghidra we have the script golang_renamer.py which is very useful:
After applying this plugin the main looks like more clear:
This script is an example of function fingerprinting, in this case all the opcodes are included on the crc hashing:
# This script fingerprints the functions
#@author: sha0coder
#@category fingerprinting
print "Fingerprinting..."
import zlib
# loop through program functions
function = getFirstFunction()
while function is not None:
name = str(function.getName())
entry = function.getEntryPoint()
body = function.getBody()
addresses = body.getAddresses(True)
if not addresses.hasNext():
# empty function
continue
ins = getInstructionAt(body.getMinAddress())
opcodes = ''
while ins and ins.getMinAddress() <= body.getMaxAddress():
for b in ins.bytes:
opcodes += chr(b & 0xff)
ins = getInstructionAfter(ins)
crchash = zlib.crc32(opcodes) & 0xffffffff
print name, hex(crchash)
function = getFunctionAfter(function)
More information
- Hack Tools For Pc
- Pentest Tools Kali Linux
- Hacking Tools Kit
- Pentest Tools Website
- Nsa Hack Tools Download
- Pentest Tools Alternative
- Hacker Tools For Ios
- Hacking Tools Github
- Hacker Tools Free Download
- Pentest Tools Subdomain
- Pentest Tools Tcp Port Scanner
- Tools Used For Hacking
- Hackers Toolbox
- Pentest Tools Website
- Pentest Tools Tcp Port Scanner
- Hacking Tools
- Hacker Tools For Mac
- What Is Hacking Tools
- Hacker Tool Kit
- Game Hacking
- Pentest Tools Website Vulnerability
- Hackrf Tools
- Pentest Automation Tools
- Github Hacking Tools
- Tools For Hacker
- Hacking Tools Download
- Hacking Tools Free Download
- Best Hacking Tools 2020
- Tools 4 Hack
- Hacking Tools Online
- Tools For Hacker
- Hacker Tools For Windows
- Hacking Tools Windows 10
- Hacker
- New Hack Tools
- Easy Hack Tools
- Hacking Tools Hardware
- Hacking Tools 2019
- Physical Pentest Tools
- World No 1 Hacker Software
- Hackrf Tools
- Hack Tools Mac
- Easy Hack Tools
- Hacker Tools For Windows
- How To Make Hacking Tools
- Beginner Hacker Tools
- Growth Hacker Tools
- Hacker Tools Hardware
- Pentest Tools Open Source
- Pentest Tools Website
- Hacker Tools Apk
- Hacking Tools
- Pentest Tools Android
- Hacker
- Hacking Tools Hardware
- Hacking Tools Free Download
- Pentest Tools Free
- Pentest Tools Framework
- Pentest Tools Bluekeep
- Hack Tools
- Hacking App
- Pentest Tools Subdomain
- Hacking Tools Usb
- How To Hack
- Android Hack Tools Github
- Tools 4 Hack
- Nsa Hack Tools Download
- Hacking Tools Pc
- Hacking Tools And Software
- Growth Hacker Tools
- Install Pentest Tools Ubuntu
- Hackrf Tools
- Tools For Hacker
- Hacking Tools For Kali Linux
- Hacker Search Tools
- Hacking Tools For Kali Linux
- Hack And Tools
- Pentest Tools Website
- Bluetooth Hacking Tools Kali
- Hacker Tools 2019
- Hacker Techniques Tools And Incident Handling
- Hacking Tools Kit
- World No 1 Hacker Software
- Blackhat Hacker Tools
- Kik Hack Tools
- Hak5 Tools
- Black Hat Hacker Tools
- Hacker Tools For Ios
- Hacker
- Computer Hacker
- Hacker Tools List
- Hackers Toolbox
- Hacking Tools Name
- Hacking Tools For Windows
- Pentest Tools For Mac
- Usb Pentest Tools
- Pentest Tools Framework
- Hacking Tools Windows 10
- Pentest Tools Linux
- Hacking Tools Usb
- Hacker Tool Kit
- Hacker Tools
- Nsa Hacker Tools
- Pentest Tools Tcp Port Scanner
- Hacker Techniques Tools And Incident Handling
- How To Hack
- Hacking Tools For Windows
- Physical Pentest Tools
- Pentest Tools Online
- How To Hack
- Ethical Hacker Tools
- Hacking Tools Mac
- Hack Tools Online
- Hacking Tools 2019
- Pentest Tools Android
- Hack And Tools
- Hackrf Tools
- Hack Apps
- Hack Tools For Mac
- Hacking Tools For Mac
- Underground Hacker Sites
- Hacking Tools Free Download
- Pentest Tools Online
- Pentest Tools For Android
- Hack Tools For Pc
- Pentest Tools
- Hackrf Tools
- Hack Tools Download
- Hack Apps
- Hack And Tools
- Ethical Hacker Tools
- Hacker Tools Free Download
- Pentest Tools Windows
- Hack Tools Online
- Pentest Tools Android
- Pentest Tools Github
- Tools Used For Hacking
- Pentest Tools Online
- Computer Hacker
- Tools 4 Hack
- Pentest Tools Open Source
- Pentest Tools For Android
- Nsa Hack Tools
- Hacker Tools Mac
- Hack And Tools
- Hack Tools For Games
- Hacking Tools Usb
- Hack Tool Apk
- Pentest Tools Open Source
- Easy Hack Tools
- Pentest Tools Nmap
- Hacking Tools Hardware
- Hacker Tool Kit
- Hak5 Tools
- Free Pentest Tools For Windows
- Physical Pentest Tools
- Hacking Tools Usb
- How To Install Pentest Tools In Ubuntu
- Hacking Tools Software
- Growth Hacker Tools
No comments:
Post a Comment