作者L4ys (Lays)
看板C_and_CPP
标题Re: [问题] 请问C程式的反组译问题
时间Thu May 5 16:53:10 2016
这一题如果光看 disassembly 会非常痛苦
如果有 IDA Decompiler 会轻松许多
整个判断过程翻译回 C 大概是这样:
https://gist.github.com/L4ys/5b53d094f3ac66825a9e7afca30a258b
你看到的部分只是第一个 check,而总共必须通过 51 次 check
这题考的是如何利用 constraint solver 去推算出符合条件的 input
最简单的方法是透过 z3 (
https://github.com/Z3Prover/z3) 来求解
附上我比赛时写的 solution:
https://gist.github.com/L4ys/9d4af3f76add2eb111a9c5623ef8f67b
FLAG: CTF{0The1Quick2Brown3Fox4Jumped5Over6The7Lazy8Fox9}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.134.65.207
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1462438396.A.A4D.html
1F:推 HowLeeHi: 感谢说明,因为我前面那一段mov没搞懂在搬什麽鬼 05/05 17:17
2F:→ HowLeeHi: 导致後面理解错误... 05/05 17:19
3F:推 TobyH4cker: 推大大 05/05 17:19
4F:推 x000032001: lays大神 未看先推 05/05 18:13
5F:推 tjjh89017: 朝圣推 05/05 18:14
6F:推 iGene: 朝圣推 05/05 18:15
7F:推 winken2004: wow 05/05 18:19
8F:推 tuyutd0505: 是 lays 我学长我骄傲 推 XDDDD 05/05 19:22
9F:推 ddaa: 真不愧是 meh 与他的快乐夥伴 <(_ _)> 05/05 21:02
10F:推 alice1993613: 朝圣推 05/05 21:06
11F:推 Caesar08: 听说是大神,赶快拜一下 05/05 21:07
12F:推 scwuaptx: 已跪 <(_ _)> 05/05 21:09
13F:→ wtchen: 板工跪迎 <(_ _)> 05/05 22:48
14F:推 mabinogi805: 大大降临,推上! 05/06 18:07
15F:推 HolyBugTw: 会反组译的一律要拜... 05/09 17:35