मैं हाल ही में एक असेंबली के पूरे लोड के माध्यम से अपना रास्ता बदल रहा हूं ताकि यह पता चल सके कि कोई प्रोग्राम कुछ डेटा को कैसे डिक्रिप्ट कर रहा है। अब तक मैंने पहचान की है कि चतुर्थ निकाला गया है, कि चौथाई 16 बाइट लंबा है और डिक्रिप्शन विधि सिफर ब्लॉक चेनिंग का उपयोग करती है। नतीजतन मेरा मानना है कि उपयोग की जाने वाली एन्क्रिप्शन विधि एईएस-128-सीबीसी है।Obfuscated एईएस डिक्रिप्शन असेंबली
अगले चरण को डिक्रिप्ट करने के लिए उपयोग की जाने वाली कुंजी की पहचान करने का प्रयास किया गया है, मुद्दा यह है कि व्यक्तिगत ब्लॉक साइफर एन्क्रिप्शन के लिए असेंबली आकार में लगभग 2.5 एमबी है। हालांकि, मैं क्या देखा है यह एक बहुत ही इसी तरह के रूप के सभी है, उदाहरण के लिए, एक टुकड़ा:
add.w r0, r12, #0x13
str.w r0, [lr, #0x44]
tst.w r0, #0xff
mov r0, r12
it eq
eoreq r0, r12, #0x75
add.w r1, r12, #0x5d
str.w r1, [sp, #0xf00]
tst.w r1, #0xff
it eq
addeq r0, #0x3b
r12
एन्क्रिप्टेड डेटा, एक तर्क (r0
) में पारित से लोड होता है इस प्रकार है:
mov r4, r0
add.w lr, sp, #0x1000
ldrb.w r12, [r4]
सबरूटीन में विधानसभा की सभी आदर्श रूप से है, कुछ भरपाई, एन्क्रिप्टेड डाटा को जोड़ा गया संग्रहीत, 0xff
(हमेशा0xff
) और फिर कुछ Oper के खिलाफ परीक्षण किया जाता है परिणामस्वरूप एओयन का प्रदर्शन किया जाता है, या तो XOR, OR, ADD या MOV किसी अन्य रजिस्टर को प्रभावित करता है (उदाहरण में r0
)।
क्या यह आपके लिए एईएस-128 दिखता है और क्या आप सहमत हैं कि एन्क्रिप्शन जानबूझकर कुंजी को छिपाने के लिए obfuscated किया गया है? यदि ऐसा है तो यह कैसे obfuscated किया गया है और कुंजी खोजना संभव होगा?
अतिरिक्त जानकारी
Here's a link ब्लॉक सिफर एन्क्रिप्शन सबरूटीन के लिए पूर्ण एएसएम फाइल करने के लिए।
और this is a link सीबीसी का उपयोग करने वाले उपराउटिन में और उपरोक्त उपरोक्त को मुख्य प्रश्न में संदर्भित करता है।
मुझे लगता है कि [टैग: रिवर्स-इंजीनियरिंग] [टैग: सुरक्षा] से अधिक लागू होता है लेकिन इसे वापस करने में संकोच न करें। हालांकि, हमें वास्तव में वास्तुकला टैग की आवश्यकता है। पीएस: मैं आमतौर पर डाउनवोट करने के लिए जल्दी हूं लेकिन यह मुझे नहीं था;) – Jester
@ जेस्टर मेरे लिए अच्छा लगता है। आपने अपना नाम साफ़ कर दिया है: पी अगर यह ऑफ-विषय/व्यापक है तो मैं हमेशा इसे रिवर्स इंजीनियरिंग या सुरक्षा एसई में ले जा सकता हूं। – Joshua
मुझे समझ में नहीं आया कि आपने यह निष्कर्ष निकाला है कि यह सीबीसी-एईएस है, मान लें कि यह मामला है। लेकिन एईएस का पूरा बिंदु यह है कि विधि ज्ञात होने पर भी कुंजी को तोड़ा नहीं जा सकता है। एईएस को obfuscation की जरूरत नहीं है। –