Skip to content

Commit 369f43d

Browse files
authored
Create TIPS.md
1 parent 6677e8b commit 369f43d

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

TIPS.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## Reverse Engineering Tips
2+
3+
These are just things I've noticed about the workflows of those who I respect and have learned from. I'm writing them here as a reminder to try to do these things personally.
4+
5+
- **Always jump to an interesting point**; never start their analysis at the beginning of the file. Use strings (like "Wrong password") and symbols to find the most interesting points to jump to.
6+
- **Focus on commonly vulnerable functions** (strcpy, memcpy, exec). Gaining control of these functions often means you can alter memory, cause buffer overflows, and gain code execution.
7+
- **Look for functions that accept user-input** (recv, scanf, gets). These functions often mean we can insert arbitrary data into memory and potentially supply unexpected values or longer-than-expected strings.
8+
- **Don't worry if someone solved something differently** than you. There are usually many ways to solve a good CTF challenge. CTF challenge writers are often surprised at a solution that they did not expect participants to find.
9+
- **Read writeups** to gain perspectives, learn techniques, and discover new tools.
10+
11+
## Things you should know
12+
13+
- Basic blocks are chunks of assembly instructions that are broken apart by conditonal JMP instructions. Based on the state of the CPU registers, these JMP instructions will take a different paths, so they're a logical place to break apart long streams of assembly instructions.

0 commit comments

Comments
 (0)