
REcon 2024 में 28 जून, 2024 को प्रस्तुत 'Reversing Rust Binaries: One step beyond strings' कार्यशाला के स्लाइड्स और फ़ाइलें।
इस रिपॉजिटरी में REcon 2024 में Rust बाइनरीज़ को रिवर्स करना: स्ट्रिंग्स से एक कदम आगे वर्कशॉप के लिए पूरक फ़ाइलें शामिल हैं, जिसे 28 जून, 2024 को प्रस्तुत किया गया था।
प्रस्तुति के दौरान, हम एक बहुत ही सरल Rust बाइनरी - एक हानिरहित डाउनलोडर - बनाएंगे और उसका रिवर्स करेंगे। डाउनलोडर का स्रोत कोड इस रिपॉजिटरी में simple-downloader/ फ़ोल्डर में है।
प्री-वर्कशॉप सेटअप निर्देशों के लिए नीचे पढ़ें!
आसान सेटअप के लिए, आप एक पूर्व-कॉन्फ़िगर्ड Ubuntu VM डाउनलोड कर सकते हैं जिसमें निम्नलिखित सभी चीज़ें मौजूद हैं:
rust-analyzer एक्सटेंशन पहले से इंस्टॉल है (ऑटोकंप्लीट और डॉक्यूमेंटेशन टूलटिप्स के लिए)simple-downloader/ फ़ोल्डर में मौजूद कोडsimple-downloader बाइनरी के पूर्व-निर्मित Linux संस्करणों वाला एक Ghidra प्रोजेक्टआप VM फ़ाइल (.OVA फ़ाइल) यहाँ से डाउनलोड कर सकते हैं: https://drive.google.com/file/d/1pM1MwQf4Ccjt-KokbV1RFh8C9tv48jrt/view?usp=sharing
फिर आप इस OVA फ़ाइल को अपने VM सॉफ़्टवेयर (जैसे VMware Workstation, VMWare Fusion, VirtualBox, आदि) में इम्पोर्ट कर सकते हैं।
VM पर मुख्य खाते का यूज़रनेम user और पासवर्ड user है।
यदि आप इस वर्कशॉप को अपनी खुद की मशीन के आराम से करना चाहते हैं, तो आपको निम्नलिखित की आवश्यकता होगी:
https://sh.rustup.rs/rustup-init.sh); हालाँकि, कोड को Windows के लिए भी बहुत आसानी से अनुकूलित किया जा सकता है।simple-downloader बाइनरी के कुछ पूर्व-निर्मित Linux संस्करणों वाला एक Ghidra प्रोजेक्ट दिया गया है: prebuilt-files/rust-reversing-workshop-2024_2024_05_17.garsimple-downloader बाइनरी अलग से भी उपलब्ध हैं:
आधिकारिक टूलचेन सेटअप निर्देश https://rustup.rs/ पर हैं। वहाँ दिए गए निर्देशों का पालन करें; पृष्ठ आपके ऑपरेटिंग सिस्टम के लिए विशिष्ट निर्देश प्रदर्शित करेगा।
इंस्टॉलेशन के बाद, जाँच लें कि आप नए इंस्टॉल किए गए rustup और cargo दोनों टूल चला सकते हैं:
$ rustup --version
rustup 1.27.0 (bbb9276d2 2024-03-08)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.77.1 (7cf61ebde 2024-03-27)`
$ cargo --version
cargo 1.77.1 (e52e36006 2024-03-26)
हम इस वर्कशॉप में Rust संस्करण 1.77.1 का उपयोग करेंगे, इसलिए उस संस्करण को इंस्टॉल करें, और अपने टूलचेन को सभी बिल्ड के लिए डिफ़ॉल्ट के रूप में उस संस्करण पर स्विच करें:
rustup install 1.77.1
rustup default 1.77.1
यदि आप Windows या macOS पर बिल्ड कर रहे हैं, तो आप इस चरण को छोड़ सकते हैं।
यदि आप Linux पर बिल्ड कर रहे हैं: इस बिल्ड के कुछ हिस्से gcc, ld, pkg-config, और OpenSSL डेवलपमेंट हेडर्स पर निर्भर करते हैं। Ubuntu पर, आप इन्हें इस प्रकार इंस्टॉल कर सकते हैं
sudo apt install build-essential
sudo apt install pkg-config
sudo apt install libssl-dev