基于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。
Conflux PoW基礎獎勵由2 CFX調整為1 CFX提案將于明日鏈上激活:2月21日消息,Conflux Network CIP-94 提案投票結果將在區塊 154536000(預計 2023 年 2 月 22 日 20:00)處激活,屆時,PoW 基礎獎勵由 2CFX 調整為 1CFX,PoS 基礎通脹率將從 4% 調整為 4.08%。[2023/2/21 12:20:19]
首先是函數1:0x4214352d
function0x4214352d(uint256varg0,uint256varg1)publicnonPayable{require(msg
//翻譯一下functionset_array(uint256_value,uint256_key)public{require(msg
可以看到該函數主要是對array_0進行賦值,在賦值前檢查了兩項:
DuneCon 2022:各主流公鏈DAU總和僅為互聯網0.05%,Web3開發者占全球開發者不足0.06%:9月19日消息,近期Redpoint Ventures總經理Tomasz Tunguz在DuneCon 2022大會中表示,各主流公鏈每日活躍用戶(DAU)累計約為250萬,而互聯網DAU為50億,目前占比僅為0.05%。此外,Web3領域約有1.6萬名開發者,而世界上有大約2700萬開發者。Web3開發者占比不足0.06%。[2022/9/19 7:05:45]
msg
=>functionget_array(uint256_key)publicviewreturns(uint256){require(msg
與set_array函數類似
再看函數3:owners
functionowners(uint256varg0)publicnonPayable{require(msg
Quantum Economics創始人Mati Greenspan擔任WUBITS高級顧問:8月12日消息,Quantum Economics創始人Mati Greenspan已加入Web3社交平臺WUBITS擔任高級顧問。Greenspan將就如何加速其用戶采用以及新興市場趨勢向其提供建議。
WUBITS高管Albert Mashadev表示,Greenspan的加入將有助于團隊“使用Web3和WUBIT的創新加密內容變現模型加速SoFi(社交金融)的發展”。(Cryptoslate)[2022/8/12 12:20:20]
=>functionowners(uint256_key)publicviewreturns(address){require(msg
最后看函數4:0x2918435f
function0x2918435f(addressvarg0)publicpayable{require(msg
NFT和數字資產公司Ioconic融資150萬美元,KeneticCapital領投:NFT和數字資產公司Ioconic完成150萬美元融資,KeneticCapital領投,其他私人投資者參投。Ioconic為進入數字資產領域的品牌和個人提供全面的解決方案,包括授權和品牌代表服務、NFT創作、營銷、發放服務以及社交代幣創建服務。迄今為止,Ioconic已經支持150余個項目。(BusinessLeader)[2021/8/10 1:46:22]
v2=1;}require(v0);MEM=MEM(varg0
assert(v5<varg0
v7,v8=varg0
require(v7);}
可以看到函數40x2918435f比較復雜,簡單分析函數4中有三層require:
要求調用該函數的msg
分析 | ConDesk分析:BTC和黃金價格存在負相關:據CoinDesk分析, BTC連續第13天交易在3500美元以上的窄幅區間內整理。日線圖上,BTC在3500美元的關鍵支撐位上創造了一個長下影線的十字星,表明看跌行情疲軟。BTC后續如果超過3615美元(周二的低點)將證實看漲行情。分析師總結,BTC和黃金是負相關的。持續的黃金疲軟對BTC來說可能是個好兆頭。另一方面,如果黃金價格超過1300美元,BTC可能面臨新的拋售壓力。就技術面而言,10周均線向下傾斜,目前的趨勢仍是看跌,但若BTC今日收盤價高于3615美元,則BTC突破4000美元的看漲趨勢將進一步加強。[2019/1/23]
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通信堆棧」
本公眾號的文章只做研究、學習和交流使用,不具有任何的操作指導意義!幣圈唯一每天堅持視頻分析行情的公眾號!今天沒有視頻,只有文字,各位見諒~預計明、后兩天是文字分析.
1900/1/1 0:00:00實際上FIL幣的發行是六年減半機制,我們5全網有效算力減少一半也有20224枚,5年以后幣價按1000元一枚算,差不多有2000多萬,對于FIL來講幣價漲到1000不是什么難事.
1900/1/1 0:00:00?1、短線邏輯思維比較嚴重這里所謂短暫的邏輯思維,是需要人們擁有長遠的總體目標。合理分配倉位,長期作主、短期作為輔助,短期趨勢的變化也需要跟隨.
1900/1/1 0:00:00鏈聞消息,興業銀行發布禁止使用該行賬戶參與虛擬貨幣交易的聲明,稱任何機構與個人不得將在該行開立的賬戶用于虛擬貨幣的交易資金充值及提現、購買及銷售相關交易充值碼等活動.
1900/1/1 0:00:00殺軟件先驅約翰·邁克菲告訴他的100萬推特粉絲,他的全部加密貨幣財富已經消失,盡管他承認,不是所有人都會相信他說的是真的.
1900/1/1 0:00:00尊敬的用戶: WBF將于新加坡時間2021年6月20日12:00上線DCIP-30天定期理財第三期.
1900/1/1 0:00:00