Post

CTF Inventory

Hello CTFers. Here is an inventory for people actively competing in CTFs. This should cover almost all main domains of CTFs and some extras. It’s been a wild journey of competing in CTFs for the past 8 months, and it’s been one of the most exciting endeavors of my life. Being able to lead H7Tex, meeting super amazing people, travelling the country, sleepless nights, post-CTF drama, constantly getting humbled and all of that. I truly believe getting involved with CTFs is the the best way to learn and excel in Cyber-Security. I hope this will become a strong-hold for people looking to get themselves equipped with the CTF world. Peace.

Reverse Engineering

3

gdsdecomp

Download Detect It Easy - MajorGeeks

Compiler Explorer

Decompiler Explorer

To check binary security settings:

checksec —file <filename>

1
2
3
4
5
6
7
8
9
10
11
12
┌──(kali㉿kali)-[~/Downloads/rev_packedaway]
└─$ upx -d packed

                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2024
UPX 4.2.2       Markus Oberhumer, Laszlo Molnar & John Reiser    Jan 3rd 2024

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
     22867 <-      8848   38.69%   linux/amd64   packed

Unpacked 1 file.

IDA pro / Ghidra

Functions to convert UTF-8(Unicode) to it’s code point and vise-versa

The ord() function in Python returns the Unicode code point of a single character.

For example:

  • ord('A') returns 65, which is the Unicode code point for the character ‘A’.
  • ord('汉') returns 27721, which is the Unicode code point for the Chinese character ‘汉’.

In the context of the provided code, ord() is used to obtain the Unicode code point of each character in the encoded string. This code point is then used in the transformation process to derive the original flag.

To reverse the ord() function and obtain the character corresponding to a Unicode code point, you can use the chr() function. Here’s how you can do it:

1
2
3
4
5
6
7
8
9
# Unicode code point
code_point = 27721

# Reverse the Unicode code point to obtain the character
character = chr(code_point)

# Print the character
print(character)  # This will print '汉'

The chr() function takes a Unicode code point as input and returns the corresponding character. In this example, chr(27721) returns the character ‘汉’.

PicoCTF Reverse Engineering PDF:

Book-6-Pico-Reversing.pdf

Radare2

OllyDbg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
exiftool
readelf -s <executable>
strings
objdump -d
stegseek
binwalk -e
nc
ltrace / strace
readelf -a <file_name>
ida
gdb
apt-cache search <file_name>
nc 
rot13
install bsdgames
zsteg
steghide
hexdump -C
mysqlbinlog
xxd 
grep
ssh -X POST <hash> | grep -i <flagFormat>
man exiv2 | cat | xclip -selection clipboard

Cryptography

4

CryptoHack – Home

Symbols Cipher List

Here’s a brief reminder on how to create a python virtual environment, I started using this because the amount of dependencies that I installed started to break each other.

  1. create the virtual environment:

    1
    2
    3
    
     Copy code
     python3 -m venv neural
        
    
  2. Activate the virtual environment:

    1
    2
    
        
     source neural/bin/activate
    

CADO-NFS

X-RSA

CyberChef

Here’s a article on BSD sockets:

The BSD socket interface, or Berkeley Software Distribution (BSD) sockets, is

a collection of standard function calls that allow programmers to add internet communication to their products. BSD sockets are a client/server architecture that uses TCP to allow a host to listen for incoming connection requests. The sockets interface handles internetworking protocols, so users only need to understand the protocols that tell them how to interpret the data.

BSD sockets are often used for network communication because they provide a well-defined API for exchanging data over the network. They typically rely on TCP and UDP socket communication.

Here are some types of sockets:

  • Datagram sockets: Allow processes to use the User Datagram Protocol (UDP)
  • Stream sockets: Allow processes to use the Transfer Control Protocol (TCP) for communication
  • Raw sockets: Provide user access to the Internet Control Message Protocol (ICMP)

The socket interface in C provides a mechanism for setting up a communication channel to another host system. For both clients and servers, the initial function call is the same. Processes call socket() to request a new socket instance from the OS.

FreeBSD offers several functions for working with sockets. The socket function is used by both clients and servers. It is declared as: int socket(int domain, int type, int protocol); The return value is an integer.

The getsockopt() function retrieves the current value of a particular socket option for the specified socket. The setsockopt() function sets a particular socket option for the specified socket. Berkeley sockets can operate in one of two modes: blocking or non-blocking.

1
2
3
4
5
6
7
8
9
10
11
import socket
HOST = 'betta.utctf.live'
PORT = 7356

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    print(s.recv(1024).decode())
    s.sendall(b'1\n')
    response = s.recv(1024).decode()
    encrypted_flag_hex = response.split(": ")[1].strip()
    encrypted_flag_bytes = hex_to_bytes(encrypted_flag_hex

CrypTool Portal

CacheSleuth - Multi Decoder

RsaCtfTool

factordb.com

Online Malbolge Compiler

CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc.

CyberChef

mcrypt

Malbolge - Old Programming Language

Cool articles on Cryptography:

Cryptanalysis

https://en.wikipedia.org/wiki/RSA_(cryptosystem)

Book-2-Pico-Cryptography.pdf

Cryptography&NetworkSecurity-WilliamStallings

Visual_cryptography

Binary Exploitation

5

PicoCTF Binary-Exploitation PDF:

Book-5-Pico-Binary-Exploitation.pdf

GNU Debugger

1
2
3
4
$ apt-get update
$ apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
$ python3 -m pip install --upgrade pip
$ python3 -m pip install --upgrade pwntools

Checkout more about Pwning at:

Pwnology

Steganography

6

John the Ripper password cracker

SecLists

hashcat

Aperi’Solve

6.5

1
2
3
4
5
6
7
8
9
10
11
└─$ deepsound2john beep.wav > sound.txt

└─$ john -w=/usr/share/wordlists/rockyou.txt sound.txt 
Using default input encoding: UTF-8
Loaded 1 password hash (dynamic_1529 [sha1($p null_padded_to_len_32) (DeepSound) 128/128 AVX 4x1])
Warning: no OpenMP support for this hash type, consider --fork=2
Press 'q' or Ctrl-C to abort, almost any other key for status
letmein          (beep.wav)     
1g 0:00:00:00 DONE (2024-04-20 15:18) 100.0g/s 168000p/s 168000c/s 168000C/s 123456..kenny
Use the "--show --format=dynamic_1529" options to display all of the cracked passwords reliably
Session completed.
1
2
3
4
5
6
7
└─$ stegolsb wavsteg -r -i challenge.wav -o output.txt -n 2 -b 10000
Files read                     in 0.05s
Recovered 10000 bytes          in 0.00s
Written output file            in 0.01s
                                                                                                                                               
└─$ cat output.txt 
NexusCTF{Th3_Le4st_S1Gn1f!c4n7_B1t55_1n_A_W4v_f1L3_6fe20da1bc9}                                                                                                                                                                                                    ���<�

GitHub - ragibson/Steganography: Least Significant Bit Steganography for bitmap images (.bmp and .png), WAV sound files, and byte sequences. Simple LSB Steganalysis (LSB extraction) for bitmap images.

Whitespace Interpreter

pngcheck -7cpqstvx osint1.png

sonic visualizer / Audacity

steghide extract -sf <filename>.jpg

stegseek <filename>.jpg <wordlist>.txt

curl / less

HexEd.it - Browser-based Online and Offline Hex Editing

Steganography - A list of useful tools and resources

UTF-8 encoder/decoder

DeepSound-2.0

StegoSuite

BertNase’s Own - npiet fun!

Endianness

exiv2

1
2
3
exiv2 -M"set Exif.Image.DateTime Ascii 1965:01:25 15:45:00"

exiv2 -M “set exif.Image.DateTime Ascii 1970:01:01 00:00:00.001”

Processing JPEG photos online - IMG online

qsstv - Qt based slow scan television and fax

Open Source Intelligence

OSINT Framework

Wayback Machine

Wayback Machine

https://github.com/sherlock-project/sherlock

1
2
3
4
5
└─$ pipx install sherlock-project
  installed package sherlock-project 0.15.0, installed using Python 3.11.9
  These apps are now globally available
    - sherlock
done!  🌟 

Web Check - X-Ray Vision for any Website

Instant Username Search

geoestimation

PicartaAI

1
sudo apt install maltego
[maltegoKali Linux Tools](https://www.kali.org/tools/maltego/)

WhatsMyName Web

URL and website scanner - urlscan.io

DNSdumpster.com - dns recon and research, find and lookup dns records

[28 Online Vulnerability Scanners & Network ToolsHackerTarget.com](https://hackertarget.com/)

Epieos, the ultimate OSINT tool

Intelligence X

dehashed

Shodan

Reverse Image Lookup:

TinEye Reverse Image Search

Web Exploitation

Bruteforcing Tools:

GoBuster

FFUF

dirb

Enumeration:

nikto

nmap

burp-suite

Baby web challenges:

/robots.txt

check source/inspect

JWT

jwt_tool

LFI

SQLi

sqlmap

curl with headers including TRACE

Miscellaneous

FileInfo.com - The File Format Database

WOFF2

File Formats

Day 18: Essential CTF Tools

Online Tools to crack CTF Contest!

This is also the category where the some of the flags might be hidden Discord or with some Bot. It’s a nightmare for people getting started in CTFs, cause it was the same for me LOL. Here is a cheat-sheet on how you’ll tackle Discord flags. Trust me, some flags were just absurd.

p4

https://bi0sctf{h1dd3n_1n_pl41n_s1ght}:hehe@ctf.bi0s.in/

Check #announcements channel, it usually is put there or in other channels. It could be hidden in the channels description, pinned messages, random message at the start, at one of the admins user cards.

Here is a Discord bot challenge from Metared-CTF Argentina.

7

when the bot says it’s somewhere over here, it meant literally. Copy the message with Discord’s copy text option, now paste it in a text editor.

8

1
2
3
4
5
6
7
8
9
10
11
12
I'm not sure, but I think it's here 
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||| _ _ _ _ _ _  
Use the ctf fl-ag format: d1sc0rDTr1cKs

Digital Forensics

aircrack-ng

sstv

1
2
3
4
5
6
7
abura@Abdur-PC MINGW64 /c/Documents3/CyberSec/CTF/cybercollosiumCTF/forensics/space
$ sstv -d task.wav -o result.png
[sstv] Searching for calibration header... Found!
[sstv] Detected SSTV mode Robot 36
[sstv] Decoding image...   [#########################################] 100%
[sstv] Drawing image data...
[sstv] ...Done!

tshark

1
2
3
4
5
6
7
8
└─$ tshark -Y "icmp.ident == 0 && icmp.type == 8" -T fields -e data.data -r Echos\ Parody.pcap | awk '{ printf "%s", $1 }'
546d563464584e4456455a37517a427362444e6a6446395561444e74587a52736243456866513d3d

└─$ echo "546d563464584e4456455a37517a427362444e6a6446395561444e74587a52736243456866513d3d" | xxd -r -p                   
TmV4dXNDVEZ7QzBsbDNjdF9UaDNtXzRsbCEhfQ==

└─$ echo "TmV4dXNDVEZ7QzBsbDNjdF9UaDNtXzRsbCEhfQ==" | base64 -d
NexusCTF{C0ll3ct_Th3m_4ll!!}
1
tshark -r ./okay10.pcapng -Y 'usb.src=="1.2.1"' -T fields -e usbhid.data | sed 's/../:&/g2' > clicks

dtmf-decoder

1
2
3
4
5
6
7
8
9
10
11
Audio Anomaly

This anomaly turned out to be Morse code, though barely audible. To make the Morse code clearer, we utilized Audacitys Analyze > Plot Spectrum function, revealing a concentration of beeps around 500 Hz.

Spectrum Analysis

To make the Morse code more discernible, we adjusted the audio frequencies using Audacitys Effect > EQ and Filters > Filter Curve EQ feature, boosting frequencies around 500 Hz while suppressing others.

EQ Adjustment

With the Morse code now clearer, we visually represented it using red dots and dashes in free graphics software.

Audioalter

Autopsy Forensics tool

pdfimages

1
7z2john protected_2.7z > hash.txt

mysqlbinlog

DLL:

A dynamic-link library is a shared library in the Microsoft Windows or OS/2 operating system. A DLL can contain executable code, data, and resources, in any combination.

A dynamic link library (DLL) is a collection of small programs that larger programs can load when needed to complete specific tasks. The small program, called a DLL file, contains instructions that help the larger program handle what may not be a core function of the original program.

Animated gif tools

Volatility 3 CheatSheet

File Formats in Memory Forensics

1
2
┌──(kali㉿kali)-[~/…/pecanCTF/FINALS/Forensics]
└─$ unrar x 1267.rar

vol.py -f memory.raw -profile=Win10x64_19041 windows.pslist

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
python3 /opt/volatility/vol.py -f ~/Documents/CTF/pecanCTF/memory.raw windows.info
Volatility 3 Framework 2.5.2
Progress:  100.00		PDB scanning finished                        
Variable	Value

Kernel Base	0xf8073a017000
DTB	0x1ad000
Symbols	file:///opt/volatility/volatility3/symbols/windows/ntkrnlmp.pdb/68A17FAF3012B7846079AEECDBE0A583-1.json.xz
Is64Bit	True
IsPAE	False
layer_name	0 WindowsIntel32e
memory_layer	1 FileLayer
KdVersionBlock	0xf8073ac26398
Major/Minor	15.19041
MachineType	34404
KeNumberProcessors	2
SystemTime	2023-04-06 17:25:30
NtSystemRoot	C:\Windows
NtProductType	NtProductWinNt
NtMajorVersion	10
NtMinorVersion	0
PE MajorOperatingSystemVersion	10
PE MinorOperatingSystemVersion	0
PE Machine	34404
PE TimeDateStamp	Wed Jun 28 04:14:26 1995
1
2
3
4
5
6
7
8
9
10
python3 /opt/volatility/vol.py -f ~/Documents/CTF/pecanCTF/memory.raw windows.pslist | grep 3340
 python3 /opt/volatility/vol.py -f ~/Documents/CTF/pecanCTF/memory.raw windows.pstree
 python3 /opt/volatility/vol.py -f ~/Documents/CTF/pecanCTF/memory.raw windows.cmdline.CmdLine
sudo python3 /opt/volatility/vol.py -f ~/Documents/CTF/pecanCTF/memory.raw windows.netscan

connscan/sockscan
cmdscan
registry.userassist
registry.printkey
registry.hivelist

Evtx - Event Viewer

9

Process ID:

DumpIt is a fast memory acquisition tool for Windows (x86, x64, ARM64). Generate full memory crash dumps of Windows machines.

TabTip.exe** is an executable exe file which belongs to the Touch Keyboard and Handwriting Panel process which comes along with the Tablet PC Input Panel Accessory** Software developed by Microsoft Windows Operating System software developer.

The Service Host (svchost.exe) is a shared-service process that Windows uses to load DLL files. As its name suggests, the Service Host helps host the different files and processes that Windows needs to run efficiently. Services are organized into groups, and each group runs within a separate Service Host process.

Ctfmon.exe, also known as CTF (Collaborative Translation Framework) Loader, is a Microsoft process that always runs in the background. It is used by Microsoft Office to control the Alternative User Input Text Input Processor and the Microsoft Office Language Bar.

SgrmBroker.exeSystem Guard Runtime Monitor Broker is responsible for monitoring and attests to the integrity of the Windows platform

winlogon.exe also known as the Windows Logon Application process, is a key component of the Windows operating system. It manages the user logon and logoff procedures, enforces security policies, and ensures the smooth functioning of your computer. userinit.exe  is the file responsible for executing the logon scripts, re-establishing the network connection, and then starting Explorer.exe. Explorer.exe is a vital process in the Windows operating system that provides the graphical user interface and file management functions. It is responsible for displaying the desktop, managing files and folders, launching applications, and handling system notifications

dwm.exe Desktop Window Manager (dwm.exe) composites windows in Windows, allowing for effects like transparency and live taskbar thumbnails.

sihost.exe [Shell Infrastructure Host], in Windows 8 and above, when located in “C:\Windows\System32”, is Microsoft’s Shell Infrastructure Host. It works together with ShellExperienceHost.exe to control the Windows Graphical User Interface (GUI). It appears to depend on the Microsoft Visual C++ Redistributable Packages used by Windows. It handles only certain aspects such as taskbar opacity or transparency, the Start menu, displaying applications in the Windows interface, and changing wallpaper.

WmiPrvSE.exe legitimate and essential component for keeping your computer’s various applications and systems running effectively.

Smss.exe is the file name for the Session Manager Subsystem, a component of Microsoft Windows NT operating systems. It is part of the Windows NT family of operating systems, starting in Windows NT 3.1 in 1993.

MsMpEng.exe - Its role is to scan files for spyware, and quarantine or remove them if they are suspicious. It also scans your laptop or desktop for known worms, harmful software, viruses, and other such programs.

The Windows Console Host, or conhost.exe , is both the server application for all of the Windows Console APIs as well as the classic Windows user interface for working with command-line applications.

The file extension .ps1 is used for PowerShell scripts. A PowerShell script is a text file that contains one or more PowerShell commands. Each command appears on a separate line in the file

1
2
3
4
5
6
7
└─$ python3 vol.py -f ~/Desktop/sharedfolder/jerseyctf/living-on-the-edge/living-on-the-edge.vmem -o ~/Desktop/bin windows.memmap --dump --pid 5344

└─$ strings -e l pid.5344.dmp | grep jctf{ 
https://www.jerseyctf.com/?flag=jctf{3dg3_0f_y0ur_s3at}
https://www.jerseyctf.com/?flag=jctf{3dg3_0f_y0ur_s3at}#Resources
https://www.jerseyctf.com/?flag=jctf{3dg3_0f_y0ur_s3at}
...
1
2
remnux@remnux:/opt/volatility/dump$ file registry.UsrClassdat.0xab0a6570d000.hive 
registry.UsrClassdat.0xab0a6570d000.hive: MS Windows registry file, NT/2000 or above

Image Magick

Zbar Image

Object Linking and Embedding (OLE)

1
2
.pcapng - wireshack packet
 capture foresics

Image Magick

Zbar Image

To analyse and produce outputs for QR codes.

1
zbarimg <image.png>

OLE Tools

1
olevba <file>.docx

Gimp

How to Analyze Malicious Microsoft Office Files

https://github.com/decalage2/oletools

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
┌──(kali㉿kali)-[~/Desktop]
└─$ oleid invitation.docm 
XLMMacroDeobfuscator: pywin32 is not installed (only is required if you want to use MS Excel)
oleid 0.60.1 - http://decalage.info/oletools
THIS IS WORK IN PROGRESS - Check updates regularly!
Please report any issue at https://github.com/decalage2/oletools/issues

Filename: invitation.docm
WARNING  For now, VBA stomping cannot be detected for files in memory
--------------------+--------------------+----------+--------------------------
Indicator           |Value               |Risk      |Description               
--------------------+--------------------+----------+--------------------------
File format         |MS Word 2007+ Macro-|info      |                          
                    |Enabled Document    |          |                          
                    |(.docm)             |          |                          
--------------------+--------------------+----------+--------------------------
Container format    |OpenXML             |info      |Container type            
--------------------+--------------------+----------+--------------------------
Encrypted           |False               |none      |The file is not encrypted 
--------------------+--------------------+----------+--------------------------
VBA Macros          |Yes, suspicious     |HIGH      |This file contains VBA    
                    |                    |          |macros. Suspicious        
                    |                    |          |keywords were found. Use  
                    |                    |          |olevba and mraptor for    
                    |                    |          |more info.                
--------------------+--------------------+----------+--------------------------
XLM Macros          |No                  |none      |This file does not contain
                    |                    |          |Excel 4/XLM macros.       
--------------------+--------------------+----------+--------------------------
External            |0                   |none      |External relationships    
Relationships       |                    |          |such as remote templates, 
                    |                    |          |remote OLE objects, etc   
--------------------+--------------------+----------+--------------------------

apktool

2

decompile .dex using the dexdump tool which is provided in android-sdk

zipcrypto

DeepBlueCLI - Command-Line Tool to analyze windows event logs (evtx files)

LogParser - Universal Query Tool

Blockchain

Fundamentals

Other Concepts

ABI

Quickstart — web3.py 6.15.1 documentation

1
2
3
4
>>> from web3 import Web3, EthereumTesterProvider
>>> w3 = Web3(EthereumTesterProvider())
>>> w3.is_connected()
True

solc (Solidity Compiler) - ABI Generation

GitHub - 0xIchigo/Ethernaut: Solutions to Ethernaut, OpenZeppelin’s Web3/Solidity based wargame

Remix - Ethereum IDE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
In [1]: from web3 import Web3, AsyncWeb3

In [2]: url = 'http://94.237.57.161:31314/'

In [3]: web3 = Web3(Web3.HTTPProvider(url))

In [4]: web3
Out[4]: <web3.main.Web3 at 0x7f771f2dd990>

In [5]: web3.is_connected()
Out[5]: True

In[6]: abi = [
    {
        "inputs": [],
        "stateMutability": "payable",
        "type": "constructor"
    },
    {
        "inputs": [],
        "name": "TARGET",
        "outputs": [
            {
                "internalType": "contract RussianRoulette",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "isSolved",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "stateMutability": "payable",
        "type": "constructor"
    },
    {
        "inputs": [],
        "name": "pullTrigger",
        "outputs": [
            {
                "internalType": "string",
                "name": "",
                "type": "string"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    }
]
In [7]: sc = '0x0a9E45194F001F9b0b8c92F14B63d48dC37571c0'

In [8]: setup_contract = web3.eth.contract(address=sc, abi=abi)

In [9]: for f in setup_contract.functions:
   ...:     print(f)
   ...: 
TARGET
isSolved
pullTrigger
In [10]: web3.eth.block_number
Out[10]: 1

In [11]: balance = web3.eth.get_balance("0xD906F6268A3661414A8601c21c101b8d1323adD5")

In [12]: print(balance)
5000000000000000000000

In [13]: web3.from_wei(balance, 'ether')
Out[13]: Decimal('5000')

In [14]: setup_contract.functions.TARGET().call()
Out[14]: '0xD16950410fA12Bee8FE5f5cc20D113B29892F34a'

In [16]: target_contract = web3.eth.contract(address='0xD16950410fA12Bee8FE5f5cc20D113B29892F34a', abi=abi)

In [17]: for f in target_contract.functions:
    ...:     print(f)
    ...: 
TARGET
isSolved
pullTrigger

In [19]: target_contract.functions.pullTrigger().call()
Out[19]: 'im SAFU ... for now'

In [21]: setup_contract.functions.isSolved().call()
Out[21]: False

In [23]: balance = web3.eth.get_balance("0xD16950410fA12Bee8FE5f5cc20D113B29892F34a")

In [24]: print(balance)
10000000000000000000

In [25]: web3.from_wei(balance, 'ether')
Out[25]: Decimal('10')

In [26]: ca = '0xD16950410fA12Bee8FE5f5cc20D113B29892F34a'

In [27]: caller = '0xD906F6268A3661414A8601c21c101b8d1323adD5'

In [28]: pk = '0x9a7186e26154fea3976374a87e2b6b6af2c4421399bed492e3983d3a4459bacd'

In [29]: nonce = web3.eth.get_transaction_count(ca)

In [30]: print(nonce)
1

In [37]: web3.eth.chain_id
Out[37]: 31337

In [39]: web3.eth.gas_price
Out[39]: 1000000000

In [48]: tx = {
    ...:     'nonce': 1,
    ...:     'to': caller,
    ...:     'value': web3.to_wei(10, 'ether'),
    ...:     'gas': 200000,
    ...:     'gasPrice': web3.eth.gas_price,
    ...:     'chainId': 31337
    ...: }

In [49]: signed_tx = web3.eth.account.sign_transaction(tx, pk)

In [50]: tx_hash = web3.eth.send_raw_transaction(signed_tx.rawTransaction)

In [52]: print(tx_hash)
b'^D\xad\x0cxo\xf2\x84\x16\xa2\xe1\xa9\xe2y\x7fhuL\x97\x97\xa7%\x03\xe1;\t#\x93\x1eK\xee&'

Solidity, Blockchain, and Smart Contract Course – Beginner to Expert Python Tutorial

Solidity — Solidity 0.8.28 documentation

solidity

Foundry Book

Learn Crypto – The Best Crypto Course on the Internet

ethereumbook

Blockchain

ctf-blockchain

More about Blockchain incoming!

Game Hacking

Cheat Engine

Cheat Engine

Game Hacking

RPGMakerDecrypter, which is a tool for extracting RPG Maker XP, VX and VX Ace encrypted archives.

RPGMakerDecrypter

game-hacking

Here is my write-up on IronCTF involving Game Hacking.

IronCTF

Android

Blutter

💡 Blutter is a Flutter Mobile Application Reverse Engineering Tool.

  • Apktool – This tool is used for reverse engineering third party, closed, binary Android applications.
  • Dex2jar – This widely available tool works with Android .dex and Java .class files, enabling the conversion of one binary format to another.
  • JD-GUI – This is a graphic utility tool that stands alone and displays Java sources from .class files.

Here are a few places to get started:

IronCTF

Resources

Introduction - CTF Wiki

[WelcomeOOO archiveDEF CON CTF](https://archive.ooo/)

pwn.college

picoCTF - CMU Cybersecurity Competition

CryptoHack – Home

[TryHackMeCyber Security Training](https://tryhackme.com/)

Hack The Box: The #1 Cybersecurity Performance Center

Tools

[Vigenere Solverguballa.de](https://www.guballa.de/vigenere-solver)

Read DotCode Barcode Online

XXTEA Encrypt & Decrypt - A.Tools

HiddenWave

Rune Translator

azdle/b2

hanynet.com • isteg

rengine

Advance Recon Egnine

pyzipper

chessencryption

Attack-Defense Online Lab

glitch

1
2
flow-analyzing tool - tulip, vulnbox, Arkime, and exploit farms DestructiveFarm, 
FAST or Ataka.

Continue

This post is licensed under CC BY 4.0 by the author.