看雪CTF 2017 第六題設計思路和解題思路

這道題主要需要花時間搞清楚套路,就迎刃而解了。^_^

1.java層稍作字符串加密和類名方法名混淆處理(本來是打算java層也做點文章的@_@)

這裏寫圖片描述
解題:通過閱讀代碼,可以知道check函數爲關鍵函數,當返回爲真的時候,註冊成功。

2.so層用花指令對程序指令進行混淆,在一定程度上防止分析。

這裏寫圖片描述

解題:編寫去花指令腳本,F5就會變得很簡單。去花後check函數如下:
這裏寫圖片描述

這樣就能很清楚看到註冊過程了,第一個while循環釋放存放好的字符串到byte_20020。sub_19DA8爲加密函數,返回結果到v14,最後v14與byte_20020做比較,一樣就行了。算法採用了RC4加密+base64編碼。

3.值得一提的是,so中藏關鍵字符串數據的方式我自己覺得挺有意思的。不知道聰明的你有沒有發現呢?如果不會去花也不要緊,還有一個解題的思路就是是找到最後的彙編cmp,下好斷點,因爲這個算法的緣故。java層可以遍歷傳入字符串進行遍歷暴力破解。

4.總結一下,我自己想到了兩個解題方式,一個暴力解題,一個去花解題。從男人剛正面的角度來講,這道題主要就是考去花,沒有加其他的東西了,直接被大佬們秒得體無完膚。。。先行膜拜。最後附上答案:madebyericky94528

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章