2012-08-14 9 views
5

के लिए obfuscation जब मैं obfuscation के लिए proguard का उपयोग करते हैं केवल समारोह नाम रखना। Obfuscation के दौरान मैं केवल फ़ंक्शन नाम कैसे रख सकता हूं। कक्षा के नामों को obfuscated होना चाहिए लेकिन कार्य नाम होना चाहिए।प्रोजेवार्ड

अगर मैं का उपयोग करें,

-keep class * { 
    void somefunction(); 
} 

और यह somefunction के समारोह रहता है, लेकिन यह कक्षाएं नाम बदल नहीं करता है।

लेकिन, मुझे वर्गों नामों लेकिन somefunction

+0

... जिज्ञासा से, आप शायद इस व्यवहार को क्यों चाहेंगे? –

+0

मेरे पास जेनी प्रोजेक्ट (एंड्रॉइड एनएनडीके) है। और मैं C++ में कुछ जावा फ़ंक्शन का उपयोग करता हूं। मैं ऑब्जेक्ट की कक्षा प्राप्त कर सकता हूं, इसलिए कक्षा के नामों को अपवित्र किया जा सकता है। मुझे फ़ंक्शंस नामों को जानना चाहिए, इसलिए फ़ंक्शन नामों को – Adem

+1

obfuscate नहीं किया जा सकता है, इसलिए क्लास नाम _can_ को obfuscated किया जा सकता है, लेकिन यदि फ़ंक्शन नाम लगातार बने रह रहे हैं, तो बिंदु क्या है? आपका कोड वैसे भी obfuscated नहीं होगा। –

उत्तर

8

आप -keepclassmembers या -keepclassmembernames उपयोग कर सकते हैं बदलना चाहते हैं।

सीएफआर। ProGuard मैनुअल> उपयोग>Overview of Keep Options

+0

-keepclassmembers मेरे मामले के लिए ठीक काम करता है। धन्यवाद – Adem

संबंधित मुद्दे