170713 逆向 填數遊戲

2021-09-30 13:56:15 字數 1131 閱讀 3257

1625-5 王子昂 總結《2023年7月13日》 【連續第284天總結】

a. ciscn 結合wp再戰re

b. 這麼久之後完整的wp終於出來了,回過頭再做一遍之前的re

首先是最早放出的填數遊戲

wp上直接寫出了數獨題目,然後在網上找到了做數獨的地方再輸入即可

我當時做的時候是卡在輸入的地方,od動態調的時候只有ascii為9-12的輸入能通過、繼續迴圈,就一直糾結在那裡。沒有看別的函式。

現在想想乙個地方卡著的話應該再看看別的地方,當時不應該執著於一處。

再開啟ida解析以後,從頭分析立馬發現了問題:

__main();

sudu::sudu(&v14);

sudu::set_data((int)&v14, (sudu *)&_data_start__, v5);

這裡很明顯就是初始化的地方,檢視set_data輕鬆地發現&_data_start就指向了記憶體中的數獨題目,寫乙個idc把它跑出來:

網上找乙個數獨解答就能得到解

但是現在再看仍然理不清輸入的邏輯。在set_data函式中可以明白當輸入為0時直接跳過該賦值,否則將1-9的值傳入sudo結構體中。但是std::operator>>,std::allocator>((std::istream::sentry *)&std::cin, &v15);這個形式不太理解,似乎是輸入函式的過載,但是ida的變數前後經常不一致,所以跟不清楚是做什麼的,暫時還搞不定……

沒有輸入處理函式的話就不明白該以什麼格式輸入了

再等等別的wp吧

檢視了一篇論壇上的wp,從set_number方法可以看出來賦值是連續的,即先行後列連續輸入9*9個字元

不糾結於輸入的過載而是檢視關鍵演算法對輸入的處理

c.明日計畫

apk crack復現

填數遊戲20分

include define up i,x,y for int i x i y i define len 1000 using namespace std int n,m int finlans 0 int mymap 3 3 vector pair int,int pvec 一條 0,0 出發到 ...

Noip2018 填數遊戲

耳熟能詳,就不多說了 對於乙個不會推式子的蒟蒻,如何在考場優雅地通過此題 手玩樣例,發現對於 n 1 ans 2 m 對於 n 2 ans 4 times 3 或者乾脆打出 n,m le 3 的表 肉眼觀察法,發現似乎有 f n,m 1 3f n,m 但這並不是正確的,但如果你僅僅是這麼認為了,你仍...

NOIP 2018 提高組 填數遊戲

傳送門 小 d 特別喜歡玩遊戲。這一天,他在玩一款填數遊戲。這個填數遊戲的棋盤是乙個 n m n times m n m 的矩形 玩家需要在 的每個格仔中填入乙個數字 數字 0 00 或者數字 1 11 填數時需要滿足一些限制。下面我們來具體描述這些限制。為了方便描述,我們先給出一些定義 我們用每個...