1. 程式人生 > >實驗吧 該題不簡單 OD詳解 (flag 和分析內部演算法)

實驗吧 該題不簡單 OD詳解 (flag 和分析內部演算法)

這個題是偶然在實驗吧想起來做的題  本來打算的是分析一晚上的 但是發現經過這一段時間的學習 自己進步很大 然後在半小時的時候就做出來了這一道題 然後 分享給大家 

實驗吧原題網址   這道題其實想做出來不難 但是分析演算法還是需要一些基礎的  

點開就是這個樣子 隨便輸入一下 就是這個樣子

知道了程式大概是什麼樣子 然後開始分析演算法 (題目要求的flag 是 使用者名稱為 hello 的註冊碼)

然後開啟OD 這裡有幾種方法斷到我們想分析的地方   有一點就是 API   GetDlgItemTextA  這個API 就是獲取控制元件中的使用者輸入 然後我們先輸入後檢視 字串 

我們點開資訊那一行 

我們可以初步判定這是我們的響應資訊後的程式碼  我找到那個函式 其實有點運氣成分 因為我是往下看的時候正好看見了 這個函式

其實真正的做法應該是  用API斷點 我用的吾愛破解的OD 有斷點外掛  外掛就是第二個項 然後點下面的就可以了

然後我們斷下來後 可以  為所欲為了(能斷下來剩下來的分析就很好說了)

然後 我們先不管演算法 隨便輸入試試 然後往下走看看

到了這一步應該有所警覺 是不是到了比較的部分 然後我們試著輸入 看著flag對不對 然後輸入了[email protected]!GA0U 發現對了 我們可以知道我們地方找對了  然後就是演算法分析部分了 (大家應該有一個好習慣 要保持一定的好奇心)  然後我們往上走  發現了 

這裡是可疑點 然後經過分析  大概每一步是這樣的

其中的 迴圈 為什麼 按位取反然後-1為啥等於相反數 這個可以自己慢慢體會 其實這就是esi是個索引值 ecx就是len(name)然後

這個是將與我們得到的合為一個字串  那麼 我們可以用python來表達這個過程 


lists="[email protected]"
name="hello"

for i in range(len(name)):
    lists+=chr((i+i*ord(name[i])*ord(name[i]))%0x42+0x21)

print(lists)

感覺這個題也不是很難  

相關推薦

實驗 簡單 OD flag 分析內部演算法

這個題是偶然在實驗吧想起來做的題  本來打算的是分析一晚上的 但是發現經過這一段時間的學習 自己進步很大 然後在半小時的時候就做出來了這一道題 然後 分享給大家  實驗吧原題網址   這道題其實想做出來不難 但是分析演算法還是需要一些基礎的   點開就是這個樣子 隨便

支援向量機—SMO論文序列最小最優化演算法

SVM的學習演算法可以歸結為凸二次規劃問題。這樣的凸二次規劃問題具有全域性最優解,並且許多最優化演算法可以用來求解,但是當訓練樣本容量很大時,這些演算法往往變得非常低效,以致無法使用。論文《Sequential Minimal Optimization:A Fast Algori

最短路演算法Dijkstra/Floyd/SPFA/A*演算法

最短路徑 在一個無權的圖中,若從一個頂點到另一個頂點存在著一條路徑,則稱該路徑長度為該路徑上所經過的邊的數目,它等於該路徑上的頂點數減1。由於從一個頂點到另一個頂點可能存在著多條路徑,每條路徑上所經過的邊數可能不同,即路徑長度不同,把路徑長度最短(即經過的邊數最少)的那

Mybatis用法配置註解的使用

mybatis是持久層框架 使用方法(基於xml配置) 1.新增依賴(Maven) <!--資料庫相關, mysql, mybatis--> <!--jdbc連線-->

為什麼baidu查到的ipipconfig查到的一樣;公網Ip私網ip;網路分類ABC

IP可以分為Public IP 和 Private IP,出現這種規劃的原因在於IPv4所能表示的IP太少而電腦太多以至於不夠用,然而只有Public IP才能直接連線上網路,所以對於那些公司,學校,政府機構等場所,就可以集中使用私有的IP進行管理,而大家可以共用一個IP去連

Java簡單類、變數概念分類、宣告、命名、初始化

1初識JAVA簡單類 (1)建立第一個Java程式的具體步驟: 第一步:建立一個工程,在Package Explorer空白區域中右擊New->點選Java Project->填寫Project name(例如:javastudy),然後填寫Finish

linux下Nginx配置文件(nginx.conf)配置設置windows用phpstudy集成

兩個 response 機制 .so 不用 filename 發送 php文件 code linux備份nginx.conf文件舉例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-2017111

Linux命令部分昨今兩天

Linux命令詳解基本命令1.Linux的基本原則:1、由目的單一的小程序組成;組合小程序完成復雜任務;2、一切皆文件;3、盡量避免捕獲用戶接口;(盡量不和用戶進行交互,就是一個程序一但開始運行,就不需要用戶進行任何操作,如ls命令,ifconfig命令)4、配置文件保存為純文本格式;2.命令形式命令格式:命

Delphi中TApplication轉僅供自己參考

exce 停止 main roc 參數 reference pause 響應 選擇 轉自:http://blog.sina.com.cn/s/blog_4d6f55d90100bmv9.html   TApplication是用於Delphi應用程序的類型,該類在單元fo

Flume NG高可用叢集搭建基於flume-1.7.0

1、Flume NG簡述 Flume NG是一個分散式,高可用,可靠的系統,它能將不同的海量資料收集,移動並存儲到一個數據儲存系統中。輕量,配置簡單,適用於各種日誌收集,並支援 Failover和負載均衡。並且它擁有非常豐富的元件。Flume NG採用的是三層架構:Agent層,Collecto

oracle 高水位線刪除大量資料後續處理

一、oracle 高水位線詳解 一、什麼是水線(High Water Mark)? 所有的oracle段(segments,在此,為了理解方便,建議把segment作為表的一個同義詞) 都有一個在段內容納資料的上限,我們把這個上限稱為"high water mark"或HWM。這個HWM是一個標記,

h5標籤新增的以及改良的

文章來自:原始碼線上https://www.shengli.me/h5/62.html      1、progress 標籤:進度條;   2、ol標籤改良:starttype reversed;翻轉排序;   3、dat

手機端rem佈局淘寶無限適配

這是淘寶的github網址,裡面有適配所需的js還有說明文件 地址:https://github.com/amfe/lib-flexible 1. 問題的引出 最近閱讀白樹的博文《移動web資源整理》時,他在博文中有一段指出,如果html5要適應各種解析度的移動裝置,應該使用rem這樣的尺寸

Occlusion-aware R-CNN: Detecting Pedestrians in a Crowd 遮擋下的行人檢測

文章地址:https://arxiv.org/pdf/1807.08407.pdf 暫時沒有放出原始碼,如果有小夥伴找到程式碼的話歡迎留言給我。 一、概述 依然是解決在遮擋的情況下對人的檢測的文章,作者分別從loss和two stage detector中核心的ROI Pooling

Repulsion Loss: Detecting Pedestrians in a Crowd 遮擋下的行人檢測

最近做行人檢測Re-ID的工作,讀了Repulsion Loss: Detecting Pedestrians in a Crowd,所以剛好記錄一下對論文的閱讀和個人理解。文章中部分內容為引用別人的,我在文章最後也給出了引用的文章連結。如有侵權,請聯絡我刪除。 一、綜述 行人檢測中

【Mint-UI】search元件的使用及內含取消事件的觸發

用過Mint-UI的同學都知道,Mint-UI的文件寫的極簡,剛接觸的同學難免會因為文件不夠詳細而暈頭轉向無法下手(日常吐槽) 由於專案的需要,入坑了mint-ui的search元件,文件寫的果然讓人摸不到頭腦。 下邊直接看效果: 我們開發的是基於微信瀏覽器的移動端專案,該圖是

梳理Python 框架之中介軟體用途機制

什麼是中介軟體? 中介軟體是一個Python程式設計師用來處理Django的請求和響應的框架級別的鉤子,它是一個輕量,低級別的外掛系統,用於全域性範圍內改變Django的輸入,輸出。每個中介軟體元件都負責做一些特定的功能。 說的直白一點是中介軟體就是幫我們程式設計

SpringIOCAOP

Spring框架—控制反轉(IOC) 1 Spring框架概述 1.1 什麼是Spring Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE

高併發之併發容器從入門到超神

一、ConcurrentHashMap 在上面已經提到過ConcurrentHashMap,ConcurrentHashMap相比Hashtable能夠進一步提高併發性,其原理圖如下: HashMap,Hashtable與ConcurrentHashMap都是

STM32庫函式----外部中斷/事件控制器 EXTI

1.void EXTI_DeInit  (void) 函式解釋:將EXTI外設暫存器重置為默註釋。RCC_APB2PeriphResetCmd引數中沒有EXTI外設的的巨集,該外設重置採取的是直接向暫存器賦預設值的操作。 例子:EXTI_DeInit ( );