-
-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update and cleanup "Crackmes" chapter
Improve spelling, use common Markdown syntax. Update most of rizin invocations. For all changed command invocation was used rizin 0.7.3.
- Loading branch information
1 parent
d139324
commit 6aea95c
Showing
21 changed files
with
356 additions
and
354 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,20 @@ | ||
.instructionset | ||
--------------- | ||
## .instructionset | ||
|
||
We've now reversed all the VM instructions, and have a full understanding about | ||
how it works. Here is the VM's instruction set: | ||
|
||
| Instruction | 1st arg | 2nd arg | What does it do? | ||
| ----------- | ------- | ------- | ---------------- | ||
| "A" | "M" | arg2 | \*sym.current_memory_ptr += arg2 | ||
| | "P" | arg2 | sym.current_memory_ptr += arg2 | ||
| | "C" | arg2 | sym.written_by_instr_C += arg2 | ||
| "S" | "M" | arg2 | \*sym.current_memory_ptr -= arg2 | ||
| | "P" | arg2 | sym.current_memory_ptr -= arg2 | ||
| | "C" | arg2 | sym.written_by_instr_C -= arg2 | ||
| "I" | arg1 | n/a | instr_A(arg1, 1) | ||
| "D" | arg1 | n/a | instr_S(arg1, 1) | ||
| "P" | arg1 | n/a | \*sym.current_memory_ptr = arg1; instr_I("P") | ||
| "X" | arg1 | n/a | \*sym.current_memory_ptr ^= arg1 | ||
| Instruction | 1st arg | 2nd arg | What does it do? | | ||
|-------------|---------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| "A" | "M" | arg2 | \*sym.current_memory_ptr += arg2 | | ||
| | "P" | arg2 | sym.current_memory_ptr += arg2 | | ||
| | "C" | arg2 | sym.written_by_instr_C += arg2 | | ||
| "S" | "M" | arg2 | \*sym.current_memory_ptr -= arg2 | | ||
| | "P" | arg2 | sym.current_memory_ptr -= arg2 | | ||
| | "C" | arg2 | sym.written_by_instr_C -= arg2 | | ||
| "I" | arg1 | n/a | instr_A(arg1, 1) | | ||
| "D" | arg1 | n/a | instr_S(arg1, 1) | | ||
| "P" | arg1 | n/a | \*sym.current_memory_ptr = arg1; instr_I("P") | | ||
| "X" | arg1 | n/a | \*sym.current_memory_ptr ^= arg1 | | ||
| "J" | arg1 | n/a | arg1_and_0x3f = arg1 & 0x3f;<br>if (arg1 & 0x40 != 0)<br> arg1_and_0x3f \*= -1<br>if (arg1 >= 0) return arg1_and_0x3f;<br>else if (\*sym.written_by_instr_C != 0) {<br> if (arg1_and_0x3f < 0)<br> ++\*sym.good_if_ne_zero;<br> return arg1_and_0x3f;<br>} else return 2; | | ||
| "C" | arg1 | n/a | \*sym.written_by_instr_C = arg1 | ||
| "R" | arg1 | n/a | return(arg1) | ||
| "C" | arg1 | n/a | \*sym.written_by_instr_C = arg1 | | ||
| "R" | arg1 | n/a | return(arg1) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
.outro | ||
------ | ||
## .outro | ||
|
||
Well, what can I say? Such VM, much reverse! :) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
Crackmes | ||
======== | ||
|
||
Crackmes (from "crack me" challenge) are the training ground for reverse engineering people. This section will go over tutorials on how to defeat various crackmes using rizin. | ||
|
||
Crackmes (from "crack me" challenge) are the training ground for reverse engineering people. This section will go over | ||
tutorials on how to defeat various crackmes using Rizin. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,8 @@ | ||
IOLI CrackMes | ||
============= | ||
|
||
The IOLI crackme is a good starting point for learning rizin. This is a set of tutorials based on the tutorial at [dustri](https://dustri.org/b/defeating-ioli-with-radare2.html) | ||
The IOLI crackme is a good starting point for learning Rizin. This is a set of tutorials based on the tutorial | ||
at [dustri](https://dustri.org/b/defeating-ioli-with-radare2.html) | ||
|
||
The IOLI crackmes are available at a locally hosted [mirror](https://github.com/rizinorg/book/raw/master/src/crackmes/ioli/IOLI-crackme.tar.gz) | ||
The IOLI crackmes are available at a locally hosted | ||
[mirror](https://github.com/rizinorg/book/raw/master/src/crackmes/ioli/IOLI-crackme.tar.gz) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.