x86-64 इंटेल x86 आर्किटेक्चर के लिए 64 बिट एक्सटेंशन है

के बारे में अधिक x86-64...

उपर्युक्त जीसीसी ध्वज ने मेरे लिए कुछ भ्रम पैदा किया है। यहां यह निम्नलिखित कहता है: -वैस्टैक-उपयोग = बाइट-आकार चेतावनी दें कि किसी फ़ंक्शन का स्टैक उपयोग बाइट-आकार से अधिक हो सकता है। स्टैक के उपयोग को निर्धारित करने के लिए की गई गणना रूढ़िवादी है। एलोका, चर-लंबाई सरणियों, या संबंधित निर्माणों के....
25 पद 2021, 23:17
मैं नीचे दिए गए कोड के साथ ptrace कर रहा हूं। मैंने पाया कि execve के लिए सिस्टम कॉल नंबर 59 था, तब भी जब मैंने -m32 विकल्प के साथ संकलित किया। चूंकि मैं 64-बिट मशीन पर उबंटू का उपयोग कर रहा हूं, यह समझ में आता है। जल्द ही, सवाल उठा: "क्या libc32 32-बिट मशीन और 64-बिट मशीन पर अलग-अलग व्यवहार करता ....
25 पद 2021, 17:11
इस विषय से संबंधित कुछ प्रश्नों (और उत्तरों) पर एक नज़र डालने के बाद, मैंने godboltमें नीचे दिए गए सरल कोड को आजमाया। ए>। #include <iostream> class TwoInts { public: TwoInts( ) = default; const int& getAByRef( ) const; int getAByVal( ) const; private: int a; int b; }; cons....
25 पद 2021, 13:20
मैंने सी में एक फ़ंक्शन बनाया है जो बहुत सीधा है, यह strlen() <string.h> से char* चर की लंबाई वापस करने के लिए उपयोग करता है: int length(char *str) { return strlen(str); } यहाँ objdump -M intel -d a.out से संबंधित x86_64 असेंबली है: 00000000000011a8 <length>: 11a8: f3 0f 1e fa ....
25 पद 2021, 03:59
#include <stdio.h> #include <iostream> #include <random> using namespace std; volatile int res = 0; void copy(char* __restrict__ dst, char* __restrict__ src) { dst[0] = src[0]; dst[1] = src[1]; dst[2] = src[2]; dst[3] = src[3]; } void copyOffset(char* __restrict__ dst, char* __res....
यह उपयोगकर्ता-मोड में चल रहे कोड से संबंधित है। प्रश्न की सादगी के लिए, मान लें कि हमने किसी प्रोग्राम द्वारा बुलाए गए किसी भी साझा पुस्तकालय/ओएस एपीआई को लिया है और उन्हें स्मृति में स्थिर रूप से जोड़ा है, इसलिए हम किसी भी अमूर्त परत को कॉल नहीं कर रहे हैं, केवल सिस्टम कॉल का उपयोग कर रहे हैं। मैं....
21 पद 2021, 18:40
मैं निम्नलिखित कोड लिखने की कोशिश कर रहा हूं: .data float_val: .float 0e122.23 .text .global _start _start: fldl float_val mov $60,%rax xor %rdi,%rdi syscall जीडीबी का उपयोग करने के बाद, st(0) में मान कुछ कचरा है। ऐसा क्यों? मुझे समझ नहीं आ रहा है कि समस्या कहां है। एक YASM समकक्ष सही ढंग से काम....
20 पद 2021, 19:57
INTEL CPU मैनुअल (Intel® 64 और IA-32 आर्किटेक्चर सॉफ्टवेयर डेवलपर के मैनुअल वॉल्यूम 3 (3A, 3B, 3C और 3D) से: सिस्टम प्रोग्रामिंग गाइड 8.1.1), यह कहता है "गैर-संरेखित डेटा एक्सेस प्रोसेसर के प्रदर्शन को गंभीरता से प्रभावित करेगा। ". फिर मैं इसे साबित करने के लिए एक परीक्षण करता हूं। लेकिन इसका परि....
20 पद 2021, 18:55
क्या इस ऑपरेशन (सी में) के लिए कोई अंतर्निहित है? lock or QWORD [...], ... वास्तव में, मैं सी में lock or खोज रहा हूं। यदि कोई अंतर्निहित नहीं है, तो मैं इसे सी इनलाइन-एएसएम में कैसे लिख सकता हूं? मैं जीसीसी (सी संस्करण 11) का उपयोग कर रहा हूं।....
20 पद 2021, 09:22
मैं एक पेजफॉल्ट हैंडलर लिख रहा हूं, और मैं सोच रहा हूं कि क्या होगा यदि आईएसआर आईएसआर रिटर्न से ठीक पहले cr2 का मान बदल देता है। उदाहरण के लिए, यदि कुछ कोड ऐसा करता है: mov rax,QWORD PTR [rip+0x23] mov rbx,QWORD PTR [rax+0x28432] movabs rax,0xdeadbeefdeadbeef mov rcx,QWORD PTR [rax] मान ल....
20 पद 2021, 08:53
इसलिए, मैं एक x86_64 हॉबी कर्नेल के विकास की शुरुआत कर रहा हूं और मुझे यह कोड GDT (ग्लोबल डिस्क्रिप्टर टेबल) लोड करने के लिए मिला है, लेकिन मुझे समझ में नहीं आता कि यह क्या करता है। load_gdt: lgdt [rdi] mov ax, 0x10 mov ss, ax mov ds, ax mov es, ax mov rax, qword .trampoline push qword....
17 पद 2021, 19:08
मैं ptrace का उपयोग करना सीखने की कोशिश कर रहा हूं, मैंने एक साधारण असेंबली स्टब लिखा है कि 1/कॉल ptrace(0,0,0,0) (syscall, libc फ़ंक्शन नहीं)। फिर हैलो वर्ल्ड प्रदर्शित करता है और फिर एक खोल बनाता है। मैं अपना कोड बैश खोल से चलाता हूं। हैलो वर्ल्ड प्रदर्शित होता है, हालांकि मेरी प्रक्रिया निष्पा....
15 पद 2021, 12:24
मैं यह समझने की कोशिश कर रहा हूं कि लिनक्स में x86-64 असेंबली में स्टैक के साथ ठीक से कैसे काम किया जाए। मैं कुछ नंबरों को स्टैक पर धकेल रहा हूं, फिर मैं स्टैक में शीर्ष नंबर लेना चाहता हूं और उपयुक्त ASCII मान प्रिंट करना चाहता हूं। लेकिन यह हर बार अलग-अलग सामान छापता है। कृपया मुझे यह समझने में....
13 पद 2021, 00:34
मैं निम्नलिखित प्रोग्राम की असेंबली प्राप्त करने के लिए गॉडबोल्ट का उपयोग कर रहा हूं: #include <stdio.h> volatile int a = 5; volatile int res = 0; int main() { res = a * 36; return 1; } यदि मैं -Os अनुकूलन का उपयोग करता हूं, तो उत्पन्न कोड स्वाभाविक है: mov eax, DWORD PTR a[rip] imul ....
मैं असेंबली भाषा/कोड की दुनिया में नया हूं। मुझे समझना मुश्किल लगता है लेकिन मैं अपनी तरफ से पूरी कोशिश करता हूं। मुझे बस कुछ ऐसे प्रश्नों में समस्या हो रही है जिनका उत्तर मुझे एक सत्रीय कार्य के लिए देना है। अगर मैं इको $ पास करता हूं, तो मुझे एक विशिष्ट कार्यक्रम के वापसी मूल्य का पता लगाना होगा....
9 पद 2021, 18:04
मेरे पास ऐसा कोड है: mov eax, 0 mov [left], eax mov eax, [len] dec eax mov [right], eax मुझे left में 0 और right में len - 1 प्राप्त करने की आवश्यकता है। लेकिन किसी तरह left को 0 मिलता है और आफ्टर लाइन को len - 1 भी मिलता है। मैं right के लिए किसी अन्य रजिस्टर का उपयोग करने का प्रयास करता हूं, ले....
8 पद 2021, 05:57
मेरे पास फ्लोट्स की एक सरणी है जिसे मैं रिवर्स ऑर्डर में एक्सेस करना चाहता हूं। मेरे गैर-सदिश कोड में यह आसान है। मेरे पास मौजूद डेटा का एक सरलीकृत संस्करण यहां दिया गया है। float A[8] = {a, b, c, d, e, f, g, h}; float B[8] = {s, t, u, v, w, x, y, z}; यहां वह ऑपरेशन है जो मैं करना चाहता हूं। float....
7 पद 2021, 19:28
मुझे 0x0f बाइट के बिना एक शेलकोड बनाने की आवश्यकता है, समस्या यह है कि syscall और sysenter निर्देशों में उनकी कोड मशीन में 0x0f है। क्या कोई निर्देश है जिसका उपयोग मैं execve पर कॉल करने के लिए कर सकता हूं?....
1 पद 2021, 23:35
मेरे पास 24 बाइट स्ट्रक्चर्स की एक सरणी a है, जो बिना पैडिंग के व्यवस्थित है ताकि स्ट्रक्चर 1 स्ट्रक्चर 0 ((void*) &a[1] == ((void*) &a[0]) + 24 के बाद 24 बाइट्स शुरू हो जाए। rbx स्ट्रक्चर का इंडेक्स रखता है। मैं rdi से a + rbx*24 और rsi को a + rbx*24 + 8 पर सेट करना चाहता हूं। SIB 24 से गुणा करने....
1 पद 2021, 17:57
[1] sha256rnds2 के अनुसार निर्देश में एक निहित तीसरा ऑपरेंड है जो रजिस्टर का उपयोग करता है xmm0. यही वह चीज है जो मुझे एक साथ कई बफ़र्स पर sha256 की प्रभावी गणना करने से रोकती है और इस प्रकार सीपीयू की निष्पादन पाइपलाइनों और कन्वेयर का पूरी तरह से उपयोग करने की उम्मीद करती है। अन्य मल्टीबफ़र कार्या....
1 पद 2021, 12:13
मैंने पृष्ठ पते के साथ mprotect पर कॉल करने के लिए एक असेंबली स्टब लिखने के बारे में सोचा, लेकिन फिर मुझे इस स्टब को प्रक्रिया के समान पता स्थान में चलाने की आवश्यकता होगी, और मुझे नहीं पता कि यह कैसे करना है। क्या कोई और तरीका है?....
29 नवम्बर 2021, 20:35
एएसएलआर सक्षम के साथ एक पीआईई निष्पादन योग्य लोड करते समय, क्या लिनक्स प्रोग्राम सेगमेंट के मैपिंग को कैननिकल सेक्शन (0000_7fff_ffff_ffff तक) तक सीमित कर देगा या क्या यह पूर्ण निचले खंड (बिट 0 से शुरू) का उपयोग करेगा?....
27 नवम्बर 2021, 21:31
https://www.exploit-db.com/exploits/46907 मेरी समझ यह है कि x64 कॉलिंग कन्वेंशन के कारण, निष्पादन के लिए तीसरा पैरामीटर, envp, rdx में संग्रहीत किया जाना चाहिए। लेकिन यह शेलकोड इस रजिस्टर को शून्य नहीं करता है, यह केवल आरएसआई रजिस्टर को शून्य करता है (जो एआरवी को स्टोर करता है)। तो यह एक segfault ....
27 नवम्बर 2021, 11:40
मुझे ऑपरेटिंग सिस्टम में दिलचस्पी थी जो 32 बिट संरक्षित मोड प्रोसेसर से विभाजन का उपयोग करता था। जब एएमडी ने लंबा मोड जोड़ा, तो उन्होंने इसमें विभाजन हार्डवेयर सुरक्षा नहीं की। क्या 32 बिट संरक्षित मोड में कोई x86-64 प्रोसेसर फिजिकल एड्रेस एक्सटेंशन का उपयोग कर सकता है ताकि यह 4 जीबी से अधिक मेमोर....
27 नवम्बर 2021, 03:35
नमूना कोड (t0.c): #include <stdio.h> float f(float a, float b, float c) __attribute__((noinline)); float f(float a, float b, float c) { return a * c + b * c; } int main(void) { void* p = V; printf("%a\n", f(4476.0f, 20439.0f, 4915.0f)); return 0; } आह्वान और निष्पादन (godbolt.org ....
27 नवम्बर 2021, 02:48