🦊Back to NiNi's Den

Reversing.kr #1

Word count: 326Reading time: 1 min
2017/07/20 Share

本來想把9題擠一篇的,但想想還是分一下好了,
總之Easy系列完全就是 easy peasy lemon squeezy
這篇共4題,還沒解題建議不要先看。

Easy Crack

首先發現輸入密碼錯誤時會跳出錯誤訊息:

以 Incorrect Password 作為關鍵字搜尋disassemble的位址
往上一點會發現上面有字串的判斷邏輯:

慢慢比對就可以把flag拼出來了:

Easy Keygen

題目要求我們找到序號為 5B134977135E7D13 時,名字應該會是什麼
分析後發現程式會把[0x10,0x20,0x30]作為key不斷xor輸入的字串
然後把加密後的字串的ascii用hex印出來
寫個腳本反解回去就好了:

1
2
3
4
5
6
7
8
9
10
11
from binascii import *

serial = bytearray(unhexlify("5B134977135E7D13"))
key = [0x10, 0x20, 0x30]
flag = ""

for i in range(len(serial)):
flag += chr(serial[i] ^ key[i%len(key)])

print(flag)

Easy Unpack

總之這殼還滿簡單的,解壓縮結束時有個jmp,跟過去就是OEP了
本來以為兩個段是像upx一樣,一個段解壓縮進去另外一個段再執行,
但是其中一個段好像沒有執行權限。

Easy ELF

丟進gdb下幾個斷點就可以知道要求輸入的長度是5,
並且對字元做xor然後做檢查
看是要逆算回來還是做個fuzzing就好了

Original Author: Terrynini

Original link: http://blog.terrynini.tw/tw/Reversing-kr-write-up-1/

Publish at: July 20th 2017, 11:34:12

Copyright: This article is licensed under CC BY-NC 4.0

CATALOG
  1. 1. Easy Crack
  2. 2. Easy Keygen
  3. 3. Easy Unpack
  4. 4. Easy ELF