re學習(35)攻防世界-no-strings-attached(動調)

參考文章:
re學習筆記(28)攻防世界-re-no-strings-attached_Forgo7ten的博客-CSDN博客

攻防世界逆向入門題之no-strings-attached_攻防世界 no-strings-attached_沐一 · 林的博客-CSDN博客 本人題解:
扔入Exepeinfo中查殼和其他信息:

如圖所示,32位ELF的linux文件,照例扔如IDA32位中查看代碼信息,跟進Main函數:

跟進authenticate()函數

這里有個decrypt函數,中文名是加密,不在導入表中說明不是系統函數,后面的if判斷條件是輸入,還有個比較的wcscmp函數,后面兩個wprintf分別是success 和access這些成功和拒絕的字符串地址。
fgetws函數是從輸入流stdin中獲取0x2000個字符給ws,也就是說s2是關鍵了,s2由decrypt函數得出,decrypt是用戶自定義函數,在這里學到了非系統函數的英文名會是題目給的暗示,所以這里是加密操作后與輸入的比較,只要輸入后與加密后的s2一樣就會打印success或access這些字符串,那flag自然也在加密函數中了。

然后開始動調:


這里有一個問題卡了我許久,就是在Ubuntu中無法打開32位調試文件,需要安裝一些配置才可以

參考文章:

【BUG】Linux目錄下明明有可執行文件卻提示找不到,“No such file or directory”,解決:為64位Ubuntu安裝32位程序的運行架構_linux文件存在 但報錯說找不到_shandianchengzi的博客-CSDN博客

可以解決

?

?

程序在08048720執行完call,并將返回值存儲在eax里。
然后通過eax賦值給[ebp+s2],也就是字符串s2,
F8單步執行到08048725
然后跳轉到eax存儲的地址上

?

?

其實在這里也是可以看到flag的,一個一個寫出來就可以了,但是也可以提取數據,一塊弄出來

參考別人寫的腳本:
數據提取:
?

unsigned int data[38] = {0x00000039, 0x00000034, 0x00000034, 0x00000037, 0x0000007B, 0x00000079, 0x0000006F, 0x00000075,0x0000005F, 0x00000061, 0x00000072, 0x00000065, 0x0000005F, 0x00000061, 0x0000006E, 0x0000005F,0x00000069, 0x0000006E, 0x00000074, 0x00000065, 0x00000072, 0x0000006E, 0x00000061, 0x00000074,0x00000069, 0x0000006F, 0x0000006E, 0x00000061, 0x0000006C, 0x0000005F, 0x0000006D, 0x00000079,0x00000073, 0x00000074, 0x00000065, 0x00000072, 0x00000079, 0x0000007D};

?然后將其轉換為字符即為flag

#include <stdio.h>
int main()
{unsigned int data[38] = {0x00000039, 0x00000034, 0x00000034, 0x00000037, 0x0000007B, 0x00000079, 0x0000006F, 0x00000075,0x0000005F, 0x00000061, 0x00000072, 0x00000065, 0x0000005F, 0x00000061, 0x0000006E, 0x0000005F,0x00000069, 0x0000006E, 0x00000074, 0x00000065, 0x00000072, 0x0000006E, 0x00000061, 0x00000074,0x00000069, 0x0000006F, 0x0000006E, 0x00000061, 0x0000006C, 0x0000005F, 0x0000006D, 0x00000079,0x00000073, 0x00000074, 0x00000065, 0x00000072, 0x00000079, 0x0000007D};for(int i=0;i<38;i++)printf("%c",data[i]);return 0;
}

?flag為9447{you_are_an_international_mystery}

總結:
1.
不在導入表(import)中說明不是系統函數,非系統函數的英文名會是題目給的暗示

2.動態調試類似內存調試,在內存中找數據,尋找中間變量

3.IDA是根據自己的規則給無法解析變量名賦值的,也就是說在IDA里變量是s2這個名字,但是實際上程序里并沒有s2這個變量名,所以只能查看寄存器了,畢竟函數是先返回到eax寄存器中再移動到變量中的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42988.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42988.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42988.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LVS-DR模型實例

一、LVS-DR集群介紹 LVS-DR&#xff08;Linux Virtual Server Director Server&#xff09;工作模式&#xff0c;是生產環境中最常用的一 種工作模式。 1、LVS-DR 工作原理 LVS-DR 模式&#xff0c;Director Server 作為群集的訪問入口&#xff0c;不作為網關使用&#xff0…

python+django+mysql項目實踐五(信息搜索)

python項目實踐 環境說明: Pycharm 開發環境 Django 前端 MySQL 數據庫 Navicat 數據庫管理 信息搜素 輸入內容進行搜索,內容有文本類和時間類 文本類需要模糊搜索,包含即檢索 時間類需要選取時間范圍內的內容 views 利用Q完成對指定內容的檢索 檢索后按檢索內容更新…

HarmonyOS/OpenHarmony應用開發-ArkTS語言渲染控制ForEach循環渲染

ForEach基于數組類型數據執行循環渲染。說明&#xff0c;從API version 9開始&#xff0c;該接口支持在ArkTS卡片中使用。 一、接口描述 ForEach(arr: any[], itemGenerator: (item: any, index?: number) > void,keyGenerator?: (item: any, index?: number) > stri…

網絡綜合布線實訓室建設方案

一、網絡綜合布線系統概述 網絡綜合布線系統是為了滿足數據通信需求而設計和建立的一套基礎設施。它提供了數據傳輸、信號傳輸和電力供應的基礎結構&#xff0c;支持各種網絡設備和終端設備之間的連接。 網絡綜合布線系統通常包括以下組成部分&#xff1a; 1&#xff09; 數據…

面試題 17.10 主要元素

??題目來源&#xff1a; leetcode題目&#xff0c;網址&#xff1a;面試題 17.10. 主要元素 - 力扣&#xff08;LeetCode&#xff09; 解題思路&#xff1a; 首先&#xff0c;順序遍歷數組&#xff0c;將不同的數字消去&#xff0c;最后留下的數字若計數小于等于 0&#xff…

ZooKeeper集群服務器啟動

在本文中&#xff0c;我們將對集群版ZooKeeper服務器的啟動過程做詳細講解。集群和單機ZooKeeper服務器的啟動過程在很多地方都是一致的&#xff0c;因此本節只會對有差異的地方展開進行講解。下圖所示是集群版ZooKeeper服務器的啟動流程圖。 預啟動 預啟動的步驟如下。 (1)統…

Python高光譜遙感數據處理與高光譜遙感機器學習方法教程

詳情點擊鏈接&#xff1a;Python高光譜遙感數據處理與高光譜遙感機器學習方法教程 第一&#xff1a;高光譜基礎 一&#xff1a;高光譜遙感基本 01)高光譜遙感 02)光的波長 03)光譜分辨率 04)高光譜遙感的歷史和發展 二&#xff1a;高光譜傳感器與數據獲取 01)高光譜遙感…

AI搜索引擎助力科學家創新

開發者希望通過幫助科學家從大量文獻中發現聯系從而解放科學家&#xff0c;讓他們專注于發現和創新。 圖片來源&#xff1a;The Project Twins 對于專注于歷史的研究者Mushtaq Bilal來說&#xff0c;他在未來科技中投入了大量時間。 Bilal在丹麥南部大學&#xff08; Universit…

預訓練GNN:GPT-GNN Generative Pre-Training of Graph Neural Networks

一.文章概述 本文提出了一種自監督屬性圖生成任務來預訓練GNN&#xff0c;使得其能捕圖的結構和語義屬性。作者將圖的生成分為兩個部分&#xff1a;屬性生成和邊生成&#xff0c;即給定觀測到的邊&#xff0c;生成節點屬性&#xff1b;給定觀測到的邊和生成的節點屬性&#xf…

自動駕駛港口車輛故障及事故處理機制

1、傳感器故障&#xff1a; &#xff08;1&#xff09;單一傳感器數據異常處理。自動駕駛電動平板傳感方案為冗余設置&#xff0c;有其他傳感器能夠覆蓋故障傳感器觀測區域&#xff0c;感知/定位模塊將數據異常情況發給到規劃決策模塊&#xff0c;由“大腦”向中控平臺上報故障…

視頻集中存儲/云存儲/磁盤陣列EasyCVR平臺接入RTSP設備出現離線情況的排查

安防視頻監控/視頻集中存儲/云存儲/磁盤陣列EasyCVR平臺可拓展性強、視頻能力靈活、部署輕快&#xff0c;可支持的主流標準協議有國標GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持廠家私有協議與SDK接入&#xff0c;包括海康Ehome、海大宇等設備的SDK等。平臺既具備傳統安…

QT處理日志文件

由于實際生產需要&#xff0c;軟件系統的運行&#xff0c;會產生大量的日志文件&#xff0c;有時候一天就能產生超過百萬條log記錄&#xff0c;那么為了能夠處理日志文件&#xff0c;查詢并且找到我們想要的報錯信息&#xff0c;因此不得不考慮怎么實現&#xff0c;打開大日志文…

ARM--day2(cpsr、spsr、數據搬移指令、移位操作指令、位運算操作指令、算數運算指令、比較指令、跳轉指令)

.text .global _gcd _gcd:mov r0,#9mov r1,#15b loop loop:cmp r0,r1beq stopsubhi r0,r1bhi loopsubcc r1,r0bcc loopstop:b stop.end用for循環實現1~100之間和5050 .text .global _gcd _gcd:mov r0,#0x0mov r1,#0x1mov r2,#0x64b loop loop:cmp r1,r2bhi stopadd r0,r0,r1ad…

【Unity】坐標轉換經緯度方法(應用篇)

【Unity】坐標轉換經緯度方法&#xff08;應用篇&#xff09; 解決地圖中經緯度坐標轉換與unity坐標互轉的問題。使用線性變換的方法&#xff0c;理論上可以解決小范圍內所以坐標轉換的問題。 之前有寫過[Unity]坐標轉換經緯度方法&#xff08;原理篇),在實際使用中&#xff0c…

R語言實現免疫浸潤分析(2)

原始數據承接免疫浸潤分析&#xff08;1&#xff09;&#xff0c;下面展示免疫浸潤結果&#xff1a; #直接使用IOBR包內的cell_bar_plot pic<-cell_bar_plot(input quantiseq_immo_de[1:20,], title "quanTiseq Cell Fraction") #使用ggplot2 library(ggplot2)…

大疆飛卡30運載無人機技術分享

大疆飛卡30是大疆公司面向運輸領域推出的一款專業運載無人機。它采用了優秀的設計,裝備了多種先進傳感器,以解決運輸中的難題。以下我們來了解一下其主要特點: 【應用領域】 飛卡30適用于山地救災、農業化肥施用、工程材料運送等交通不便的山區應用,也適用于海島聯通等運輸鏈…

管理類聯考——邏輯——真題篇——按知識分類——匯總篇——二、論證邏輯——削弱——第一節 推理論證

文章目錄 第七章 削弱質疑第一節 削弱-題型1-推理論證-論證為預測結果題-削弱質疑-預測-推理論證-分類1-削弱論點真題(2019-24)-削弱質疑-預測-推理論證-分類1-削弱論點真題(2019-42)-削弱質疑-預測-推理論證-分類1-削弱論點真題(2011-32)-削弱質疑-預測-推理論證-分類…

機器學習基礎之《分類算法(3)—模型選擇與調優》

作用是如何選擇出最好的K值 一、什么是交叉驗證&#xff08;cross validation&#xff09; 1、定義 交叉驗證&#xff1a;將拿到的訓練數據&#xff0c;分為訓練和驗證集。以下圖為例&#xff1a;將數據分成5份&#xff0c;其中一份作為驗證集。然后經過5次(組)的測試&#x…

通過請求頭傳數據向后端發請求

axios &#xff08;get post請求、頭部參數添加&#xff09;傻瓜式入門axios_axiospost請求參數_web_blog的博客-CSDN博客

ByteBuffer 使用

ByteBuffer 使用 1 java.nio包中的類定義的緩沖區類型2 緩沖區常用屬性2.1緩沖區的容量(capacity)2.2 緩沖區的位置(position)2.3 緩沖區的限制(limit)2.4 緩沖區的標記(mark)2.5 剩余容量 remaining/hasRemaining 3 緩沖區常用方法3.1 創建緩沖區3.1.1 allocate方法3.1.2 wrap…