記錄一次ISCC逆向
題目:我方截獲了敵方的一款加密程序和一段密文(密文為:F2F5D39F18D762B7)望众,嘗試通過對此程序進行分析實現(xiàn)對密文的解密,解密后明文的32位小寫MD5值作為flag提交。
1.先運行一發(fā)烂翰,運行截圖:
2.扔進OD夯缺,搜索字符串,發(fā)現(xiàn)甘耿,咦踊兜,內有乾坤。
3.經(jīng)過成噸的分析(本人鶸一只)棵里,發(fā)現(xiàn)題目給出的密文應該是經(jīng)過打開程序時的默認加密方式加密的,那么姐呐,現(xiàn)在就要找到默認加密方式殿怜。
4.直接肛,強行跳到加密的地方
至于怎么跳曙砂,隨便找個地方跳過去头谜,我選擇的改輸入選項,把退出系統(tǒng)改成跳到自定義加密鸠澈。
//反正我是來逆向的柱告,程序boom了也沒事。(霧
在這后面下斷點笑陈,看它怎么跳的际度。
如果輸入為2,push返回值0涵妥,call exit乖菱。
把參數(shù)干掉,call自定義加密解密:
跳過去了蓬网,然后下斷點找到自定義加密是的函數(shù)窒所。
Case 1 ,call了這個函數(shù)帆锋,跟過去吵取。
加密函數(shù)就在這中間,在最后一次輸入(輸入密鑰時)后面下斷點仔細找找锯厢,找到了就跟進去皮官。
這密密麻麻的運算,看來就是它了实辑。
找到return的地方臣疑,往前下斷點。
就是這兒徙菠,下斷點讯沈,然后重新運行選擇默認加密,隨便加密一個就能看到密碼是啥了。
這就是密碼了缺狠。
再選擇自定義解密问慎。
直接在這兒看,或者看程序運行結果都可以挤茄。
然后拿去md5大法如叼。就可以提交flag了。