ASIS Reverse 125 License

License

IDA

讀 license file, named "_a\nb\tc_"

先做檔案長度校驗

-59762*x-1949670109068+14392*x^2 -1256*x^3-45235*x^4+44242*x^5=0 要成立

其中 x 為檔案長度 這邊被 IDA 雷了一下 parse 64 bit integer 時一直跳錯誤的數字 最後怒用 online tool 拆 bytes

丟 wolframealpha 或用 python 硬算一下 (推測長度不會太長) 得解 x=34

往下看 用 0xa 分割檔案內容 必須分割成等長五份 每份為 6 byts

6*5+4(分割用的0xa) 剛剛好 34 bytes

設為 s1, s2, s3, s4, s5

接著分別把某幾段 xor 後跟某 const string 比對

分成五次比對

1\. s1 xor s2 = const1

2\. s2 xor s4 xor 0x23 = const2

3\. s3 xor s4 = const3

4\. s4 xor s5 xor 23 xor s3 = const4

5\. s4 = const5

這邊 const 是串很長的 string 然後 6bytes 6bytes 切下來當 const1, const2 …

有已知 s4 其他都簡單算一下就有了

Python Script