The incoming channel will determine the final message. |
Dexor and print each byte of the "Nope!" message. |
(gdb) b *0x8049118
(gdb) commands
>set {char *}0xf7edeef3 = 0x01
>c
>end
(gdb) r 1234567890123456
tarting program: /home/sha0/ncn/inbincible 1234567890123456
...
Yeah!
=> 0x8049456: xor %ebp,%ecx
This xor, encode the argument with a key byte by byte |
The xor key can be dumped from memory but I prefer to use this macro:
(gdb) b *0x8049456
(gdb) commands
>i r ecx
>c
>end
(gdb) c
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x12 18
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x45 69
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x33 51
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x87 135
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x65 101
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x12 18
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x45 69
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x33 51
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x87 135
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x65 101
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x12 18
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x45 69
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x33 51
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x87 135
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x65 101
Breakpoint 2, 0x08049456 in main.func ()
ecx 0x12 18
The result of the xor will compared with another array byte, each byte matched, a 0x01 will be sent.
The cmp of the xored argument byte, will determine if the channel send 0 or 1 |
(gdb) b *0x0804946a
(gdb) commands
>i r al
>c
>end
Now web have:
xorKey=[0x12,0x45,0x33,0x87,0x65,0x12,0x45,0x33,0x87,0x65,0x12,0x45,0x33,0x87,0x65,0x12]
mustGive=[0x55,0x75,0x44,0xb6,0x0b,0x33,0x06,0x03,0xe9,0x02,0x60,0x71,0x47,0xb2,0x44,0x33]
Xor is reversible, then we can get the input needed to dexor to the expected values in order to send 0x1 bytes through the go channel.
>>> x=''
>>> for i in range(len(xorKey)):
... x+= chr(xorKey[i] ^ mustGive[i])
...
>>> print x
G0w1n!C0ngr4t5!!
And that's the key :) let's try it:
~/ncn$ ./inbincible 'G0w1n!C0ngr4t5!!'
Yeah!
Got it!! thanx @nibble_ds for this funny crackme, programmed in the great go language. I'm also a golang lover.
More information
- New Hacker Tools
- Install Pentest Tools Ubuntu
- Pentest Tools Url Fuzzer
- Hacking Tools And Software
- Pentest Tools Github
- Hacking Tools Pc
- Pentest Tools
- Pentest Tools Github
- Hacking Tools Name
- Pentest Tools For Mac
- Hacking Tools Download
- New Hack Tools
- Termux Hacking Tools 2019
- Hack Tools Github
- Pentest Recon Tools
- Best Hacking Tools 2020
- Hack Tools For Windows
- Hacks And Tools
- Hacker Tools For Ios
- Pentest Tools Bluekeep
- Pentest Tools Kali Linux
- Pentest Tools For Windows
- Hack Tools For Games
- Hacker Tools Apk
- Hacks And Tools
- How To Make Hacking Tools
- Hacking Tools 2019
- Pentest Tools For Android
- Pentest Tools Android
- Hacking Tools Name
- Hacking Tools Mac
- What Are Hacking Tools
- Pentest Tools Bluekeep
- Hacker Tools For Windows
- Hacking Tools 2020
- Hack App
- Hack Tools For Pc
- Pentest Tools For Android
- Pentest Tools Github
- Hacker Tools For Ios
- Pentest Recon Tools
- Underground Hacker Sites
- Computer Hacker
- How To Make Hacking Tools
- Hacking Tools For Pc
- Hacker Security Tools
- Pentest Tools Port Scanner
- Best Hacking Tools 2020
- Install Pentest Tools Ubuntu
- Hacker Tools For Ios
- What Is Hacking Tools
- Hacker Tools 2019
- Hack Tool Apk
- Top Pentest Tools
- Top Pentest Tools
- Hack Tools For Mac
- Hacker Tools Online
- Hacking Tools For Windows Free Download
- Hack Tool Apk No Root
- Hacking Tools Download
- Computer Hacker
- Tools For Hacker
- Hacking Tools Pc
- Hacker Tools Github
- Hacking Tools 2020
- Hacking Tools 2020
- Tools 4 Hack
- Pentest Tools Apk
- Hack Tools Download