.net - IL Opcode Modification -
भाषा: VB.NET 3.5
आईएल ओपोडोड:
718 ldarg.0 719 कॉलविर्ट सिस्टम.विंडो.फॉर्म.बटन आरक्लिएन्ट .आर क्लाइंट :: मिलग्रेड (724) ldarg.0 725 ldfld System.String [] RClient.RClient :: बटनट्रेस्टिंग 730 ldc.i4.5 731 ldelem.ref 732 callvirt System.Void System.Windows.Forms.ButtonBase :: set_Text (System.String) 737 ldarg.0
के अनुरूप:
Me.cmd1 टेक्स्ट = मी.बटन एसटिंग्स (5)
कम से कम मेरा मानना है कि ऐसा होता है। आईएल में क्या बदलाव होगा, इसके बजाय इसे प्रतिबिंबित करना होगा:
Me.cmd1.Text = "कुछ स्ट्रिंग"
ldarg.0 कॉलविर्ट सिस्टम। विन्डोज.फॉर्म। बटन आर क्लाइंट .आर क्लाइंट :: मिलीग्राम () ldstr "कुछ स्ट्रिंग" कॉलविर्ट सिस्टम। वीड सिस्टम । खिड़कियों.फॉर्म। बटनटन :: सेटहोस्ट (सिस्टम.स्ट्रिंग)
रेखा 1 धक्का पर मेरे
धक्का देता है। रेखा 2 विधि get_cmd1
को कार्यान्वित करता है जो ढेर के शीर्ष पर ऑब्जेक्ट के लिए संपत्ति के लिए प्राप्तकर्ता से संबंधित है cmd1
इसलिए, इस लाइन को स्टैक के ऊपर ऑब्जेक्ट से प्राप्तकर्ता cmd1
के परिणाम को धक्का जाता है, इस प्रक्रिया में स्टैक के ऊपर पॉपिंग होता है। रेखा 3 स्टैक पर "कुछ स्ट्रिंग"
धक्का देता है। इस बिंदु पर स्टैक "कुछ स्ट्रिंग"
और स्टैक पर अगले आइटम Me.cmd1
है। रेखा 4 स्ट्रेट के शीर्ष वाले स्ट्रिंग पैरामीटर के साथ विधि set_Text
को कार्यान्वित करता है यह स्टैक पर दूसरे आइटम के लिए टेक्स्ट
के लिए सेटर से मेल खाती है स्टैक पर दूसरा आइटम Me.cmd1
है। इसलिए ये रेखाएं Me.cmd1.Text = "कुछ स्ट्रिंग"
के बराबर हैं।
Comments
Post a Comment