2016-05-31 3 views
0

Давайте дадим один пример для более подробного объяснения.Можно ли зашифровать id из ресурса в Android

Вот один файл макета

abc.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    android:id="0x7f10014b" 
    android:layout_height="-2" 
    android:layout_width="-1" 
    android:orientation="0" 
    android:padding="5dp" 
    android:weightSum="1.0"> 

    <TextView 
     android:id="0x7f10014c" 
     android:layout_height="-2" 
     android:layout_marginLeft="10dp" 
     android:layout_weight="0.99" 
     android:layout_width="-2" 
     android:padding="10dp" 
     android:text="TextView" /> 

    <ImageView 
     android:id="0x7f10014d" 
     android:layout_gravity="10" 
     android:layout_height="40dp" 
     android:layout_marginRight="10dp" 
     android:layout_weight="0.01" 
     android:layout_width="40dp" 
     android:padding="10dp" 
     android:src="0x7f0200b2" /> 

</LinearLayout> 

как вы можете видеть в макете файл идентификатор шифруется с помощью алгоритма. и он будет храниться в папке id.xml, которая находится внутри папки значений.

id.xml

<resources> 
    <item type="id" name="action_location">false</item> 
    <item type="id" name="action_tile">false</item> 
    <item type="id" name="action_filter">false</item> 
    <item type="id" name="action_share">false</item> 
</resources> 

для верхней вещи, если можно писать код Java, то это логика, как показано ниже.

для доступа LinearLayout здесь, допустим, LinearLayout имеет значение 00ff7des.

Так Global declaretion является:

LinearLayout 00ff7des; 

внутри метода OnCreate

00ff7des = (LinearLayout)findViewById(0x7f10014b); 

Так я новичок в Android. Есть ли способ сделать это. По моей мысли это возможно, но как зашифровать, что я не знаю. может кто-нибудь сказать мне, что я должен сделать для этого. Или какие методы шифрования мы можем применить для android.

Любая помощь должна быть оценена.

+0

Почему вы хотите зашифровать идентификатор? – Yazan

+0

@ Язан для цели крекинга? – Ironman

+0

, честно говоря, я впервые пришел к этой идее, не уверен, что это будет полезно. в любом случае, можете ли вы быть более конкретным в своем вопросе, вы знаете, что андроид - это просто java во многих аспектах, поэтому вы можете шифровать, расшифровывать, как если бы вы писали java-коды. – Yazan

ответ

0

Для этого вы можете использовать программное обеспечение, такое как DexGuard. https://www.guardsquare.com/dexguard

Вы можете использовать ProGuard бесплатно, и он запутывает и сводит к минимуму код, поэтому обратное проектирование вашего приложения будет намного сложнее.

+0

Можете ли вы дать мне объяснение с кодом из ссылки, которую я не могу понять. – Ironman

+0

В основном, что он делает, это изменяет имена переменных и методов, поэтому такой код 'String name = user.getName()' может стать 'String a = xb();' или что-то еще, что непросто переделать , Кроме того, это уменьшает размер APK, удаляя неиспользуемые методы и классы из используемых вами библиотек. – Miro

+0

Позвольте мне сначала попробовать ваш ответ, тогда я приду к вам. – Ironman