-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAndroidRE.html
371 lines (359 loc) · 36.1 KB
/
AndroidRE.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
<!DOCTYPE html>
<html lang="en" dir="ltr" class="client-nojs">
<head>
<meta charset="UTF-8"/>
<title>AndroidRE - base48</title>
<script>document.documentElement.className = document.documentElement.className.replace( /(^|\s)client-nojs(\s|$)/, "$1client-js$2" );</script>
<script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"AndroidRE","wgTitle":"AndroidRE","wgCurRevisionId":3550,"wgRevisionId":3550,"wgArticleId":525,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Projects","Software projects"],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"AndroidRE","wgRelevantArticleId":525,"wgRequestId":"YsIrzKLwmw@xsXIVDGmAnAAAAAw","wgIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[]});mw.loader.implement("user.options",function($,jQuery,require,module){mw.user.options.set({"variant":"en"});});mw.loader.implement("user.tokens",function ( $, jQuery, require, module ) {
mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});/*@nomin*/;
});mw.loader.load(["ext.smw.style","mediawiki.page.startup","skins.vector.js"]);});</script>
<link rel="stylesheet" href="load.php%3Fdebug=false&lang=en&modules=ext.smw.style|ext.smw.tooltip.styles&only=styles&skin=vector.css"/>
<link rel="stylesheet" href="load.php%3Fdebug=false&lang=en&modules=mediawiki.legacy.commonPrint,shared|mediawiki.sectionAnchor|mediawiki.skinning.interface|skins.vector.styles&only=styles&skin=vector.css"/>
<link rel="stylesheet" href="extensions/Base48/common.css"/>
<meta name="ResourceLoaderDynamicStyles" content=""/>
<link rel="stylesheet" href="load.php%3Fdebug=false&lang=en&modules=site&only=styles&skin=vector.css"/>
<script async="" src="load.php%3Fdebug=false&lang=en&modules=startup&only=scripts&skin=vector"></script>
<meta name="generator" content="MediaWiki 1.27.1"/>
<link rel="ExportRDF" type="application/rdf+xml" title="AndroidRE" href="./index.php%3Ftitle=Special:ExportRDF%252FAndroidRE&xmlmime=rdf"/>
<link rel="shortcut icon" href="skins/favicon.ico"/>
<link rel="search" type="application/opensearchdescription+xml" href="opensearch_desc.php" title="base48 (en)"/>
<link rel="EditURI" type="application/rsd+xml" href="api.php%3Faction=rsd"/>
<link rel="copyright" href="http://creativecommons.org/licenses/by-sa/3.0/"/>
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-AndroidRE rootpage-AndroidRE skin-vector action-view">
<div id="mw-page-base" class="noprint"></div>
<div id="mw-head-base" class="noprint"></div>
<div id="content" class="mw-body" role="main">
<a id="top"></a>
<div class="mw-indicators">
</div>
<h1 id="firstHeading" class="firstHeading" lang="en">AndroidRE</h1>
<div id="bodyContent" class="mw-body-content">
<div id="siteSub">From base48</div>
<div id="contentSub"></div>
<div id="jump-to-nav" class="mw-jump">
Jump to: <a href="AndroidRE.html#mw-head">navigation</a>, <a href="AndroidRE.html#p-search">search</a>
</div>
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><p><br />
</p>
<div style="display: block; float: right; margin-left: 10px; margin-bottom: 10px; margin-top: 10px; width: 300px;" class="catlinks">
<div style="margin-top: 0.3em; margin-bottom: 0.3em; width: 290px; font-weight: bolder; font-size: 1.4em; text-align: center; color: #333;">Android RE workshop</div>
<div style="width: 290px; text-align: center; margin: 5px;"><a href="./File:Androidre_logo_small.jpg.html" class="image"><img alt="Androidre logo small.jpg" src="images/thumb/f/f3/Androidre_logo_small.jpg/290px-Androidre_logo_small.jpg" width="290" height="218" srcset="images/f/f3/Androidre_logo_small.jpg 1.5x, images/f/f3/Androidre_logo_small.jpg 2x" /></a></div>
<div style="border: 1px solid #CCC; margin: 5px; padding: 0.5em; background-color: #FFF;">
<div style="display: block;"><span style="display: inline-block; font-weight: bolder; color: #333;">Founder:</span><div style="display: inline-block; float:right; width: 160px; color: #333;"><a href="./User:MazeGen.html" title="User:MazeGen">MazeGen</a></div></div><div style="clear: right; border-top: 1px solid #CCC; margin-bottom: 5px;"></div> <div style="display: block;"><span style="display: inline-block; font-weight: bolder; color: #333;">Operating<br />System(s):</span><div style="display: inline-block; float:right; width: 160px; color: #333;">Android</div></div><div style="clear: right; border-top: 1px solid #CCC; margin-bottom: 5px;"></div> <div style="display: block;"><span style="display: inline-block; font-weight: bolder; color: #333;">Architecture(s):</span><div style="display: inline-block; float:right; width: 160px; color: #333;">multiplatformní</div></div><div style="clear: right; border-top: 1px solid #CCC; margin-bottom: 5px;"></div> <div style="display: block;"><span style="display: inline-block; font-weight: bolder; color: #333;">Programming<br />Language(s):</span><div style="display: inline-block; float:right; width: 160px; color: #333;">Java, možná C, ASM</div></div><div style="clear: right; border-top: 1px solid #CCC; margin-bottom: 5px;"></div> <div style="display: block;"><span style="display: inline-block; font-weight: bolder; color: #333;">github:</span><div style="display: inline-block; float:right; width: 160px; color: #333;"><a rel="nofollow" class="external text" href="https://github.com/hackerspace/androidRE">github repository</a></div></div><div style="clear: right; border-top: 1px solid #CCC; margin-bottom: 5px;"></div> <div style="display: block;"><span style="display: inline-block; font-weight: bolder; color: #333;">Status:</span><div style="display: inline-block; float:right; width: 160px; color: #333;">finished</div></div><div style="clear: right; border-top: 1px solid #CCC; margin-bottom: 5px;"></div> <div style="display: block;"><span style="display: inline-block; font-weight: bolder; color: #333;">Created:</span><div style="display: inline-block; float:right; width: 160px; color: #333;">2015-01-26</div></div><div style="clear: right; border-top: 1px solid #CCC; margin-bottom: 5px;"></div> <div style="display: block;"><span style="display: inline-block; font-weight: bolder; color: #333;">Last Modified:</span><div style="display: inline-block; float:right; width: 160px; color: #333;">2016-02-27</div></div>
<div style="clear: right; margin-top: 4px;"></div>
</div>
</div>
<p>Android se prosazuje a je o něm čím dál víc slyšet. Chceš vědět, co se děje při instalaci aplikace nebo jak snadno se dá (tvoje) aplikace reverznout a patchnout?
</p><p><b>Workshop by měl volně pokračovat analýzou crackmes, který už jsou připravený. Pokud o to máš zájem, dej vědet.</b>
</p><p><i>Poslední workshop se konal 20. 5. 2015.</i>
</p>
<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="AndroidRE.html#P.C5.99edpoklady"><span class="tocnumber">1</span> <span class="toctext">Předpoklady</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="AndroidRE.html#Rozvrh"><span class="tocnumber">2</span> <span class="toctext">Rozvrh</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="AndroidRE.html#Workshop"><span class="tocnumber">3</span> <span class="toctext">Workshop</span></a>
<ul>
<li class="toclevel-2 tocsection-4"><a href="AndroidRE.html#Dev.C3.A1tej_workshop"><span class="tocnumber">3.1</span> <span class="toctext">Devátej workshop</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="AndroidRE.html#Prvn.C3.AD_t.C3.A9ma:_Android_Studio.2C_SDK.2C_prvn.C3.AD_app"><span class="tocnumber">3.2</span> <span class="toctext">První téma: Android Studio, SDK, první app</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="AndroidRE.html#Druh.C3.BD_t.C3.A9ma:_Spu.C5.A1t.C4.9Bn.C3.AD_app.2C_emul.C3.A1tor.2C_za.C5.99.C3.ADzen.C3.AD"><span class="tocnumber">3.3</span> <span class="toctext">Druhý téma: Spuštění app, emulátor, zařízení</span></a></li>
<li class="toclevel-2 tocsection-7"><a href="AndroidRE.html#T.C5.99et.C3.AD_t.C3.A9ma:_kone.C4.8Dn.C4.9B_trocha_reverzov.C3.A1n.C3.AD:_vnit.C5.99nosti_skompilovan.C3.A9_app"><span class="tocnumber">3.4</span> <span class="toctext">Třetí téma: konečně trocha reverzování: vnitřnosti skompilované app</span></a></li>
<li class="toclevel-2 tocsection-8"><a href="AndroidRE.html#.C4.8Ctvrt.C3.BD_t.C3.A9ma:_z.C3.A1kladn.C3.AD_apps_pro_Android"><span class="tocnumber">3.5</span> <span class="toctext">Čtvrtý téma: základní apps pro Android</span></a></li>
<li class="toclevel-2 tocsection-9"><a href="AndroidRE.html#P.C3.A1t.C3.BD_t.C3.A9ma:_app_po_instalaci.2C_ODEX"><span class="tocnumber">3.6</span> <span class="toctext">Pátý téma: app po instalaci, ODEX</span></a></li>
<li class="toclevel-2 tocsection-10"><a href="AndroidRE.html#.C5.A0est.C3.BD_t.C3.A9ma:_Dekompilace_DEX_do_Java_k.C3.B3du.2C_disassembling"><span class="tocnumber">3.7</span> <span class="toctext">Šestý téma: Dekompilace DEX do Java kódu, disassembling</span></a></li>
<li class="toclevel-2 tocsection-11"><a href="AndroidRE.html#Sedm.C3.BD_t.C3.A9ma:_reverzing_APK_ru.C4.8Dn.C4.9B"><span class="tocnumber">3.8</span> <span class="toctext">Sedmý téma: reverzing APK ručně</span></a></li>
<li class="toclevel-2 tocsection-12"><a href="AndroidRE.html#Osm.C3.BD_t.C3.A9ma:_C.23"><span class="tocnumber">3.9</span> <span class="toctext">Osmý téma: C#</span></a></li>
<li class="toclevel-2 tocsection-13"><a href="AndroidRE.html#Dev.C3.A1t.C3.BD_t.C3.A9ma:_zachyt.C3.A1v.C3.A1n.C3.AD_HTTP.28S.29_komunikace"><span class="tocnumber">3.10</span> <span class="toctext">Devátý téma: zachytávání HTTP(S) komunikace</span></a></li>
<li class="toclevel-2 tocsection-14"><a href="AndroidRE.html#Des.C3.A1t.C3.BD_t.C3.A9ma:_crackme"><span class="tocnumber">3.11</span> <span class="toctext">Desátý téma: crackme</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-15"><a href="AndroidRE.html#Histore_workshop.C5.AF"><span class="tocnumber">4</span> <span class="toctext">Histore workshopů</span></a>
<ul>
<li class="toclevel-2 tocsection-16"><a href="AndroidRE.html#Prvn.C3.AD_workshop"><span class="tocnumber">4.1</span> <span class="toctext">První workshop</span></a></li>
<li class="toclevel-2 tocsection-17"><a href="AndroidRE.html#Druhej_workshop"><span class="tocnumber">4.2</span> <span class="toctext">Druhej workshop</span></a></li>
<li class="toclevel-2 tocsection-18"><a href="AndroidRE.html#T.C5.99et.C3.AD_workshop"><span class="tocnumber">4.3</span> <span class="toctext">Třetí workshop</span></a></li>
<li class="toclevel-2 tocsection-19"><a href="AndroidRE.html#.C4.8Ctvrtej_workshop"><span class="tocnumber">4.4</span> <span class="toctext">Čtvrtej workshop</span></a></li>
<li class="toclevel-2 tocsection-20"><a href="AndroidRE.html#P.C3.A1tej_workshop"><span class="tocnumber">4.5</span> <span class="toctext">Pátej workshop</span></a></li>
<li class="toclevel-2 tocsection-21"><a href="AndroidRE.html#.C5.A0estej_workshop"><span class="tocnumber">4.6</span> <span class="toctext">Šestej workshop</span></a></li>
<li class="toclevel-2 tocsection-22"><a href="AndroidRE.html#Sedmej_workshop"><span class="tocnumber">4.7</span> <span class="toctext">Sedmej workshop</span></a></li>
<li class="toclevel-2 tocsection-23"><a href="AndroidRE.html#Osmej_workshop"><span class="tocnumber">4.8</span> <span class="toctext">Osmej workshop</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-24"><a href="AndroidRE.html#n.C3.A1vod_na_p.C5.99id.C3.A1n.C3.AD_google_play_do_image"><span class="tocnumber">5</span> <span class="toctext">návod na přidání google play do image</span></a>
<ul>
<li class="toclevel-2 tocsection-25"><a href="AndroidRE.html#p.C5.99es_mount"><span class="tocnumber">5.1</span> <span class="toctext">přes mount</span></a></li>
<li class="toclevel-2 tocsection-26"><a href="AndroidRE.html#p.C5.99.C3.ADmo_APK_soubory"><span class="tocnumber">5.2</span> <span class="toctext">přímo APK soubory</span></a></li>
</ul>
</li>
</ul>
</div>
<h2><span class="mw-headline" id="P.C5.99edpoklady">Předpoklady</span></h2>
<p>V současné době workshop postoupil k pokročilejším tématům. Původní předpoklady byly:
</p><p>Vem si svůj počítač. Občas budeme potřebovat kompilovat, takže si na něho napřed nainstaluj <a rel="nofollow" class="external text" href="http://developer.android.com/sdk/index.html">Android Studio s SDK</a>. Instalace může trvat dlouho. Pokud si ho nechceš instalovat a namísto toho používat příkazovou řádku, tak se to nejdřív nauč, protože kompilaci z příkazové řádky probírat nebudeme.
</p><p>Pro začátek stačí, když budeš v Javě umět aspoň číst. Pokud tě k tomu nevyzvala instalace Android Studia, nainstaluj si <a rel="nofollow" class="external text" href="https://search.oracle.com/search/search?q=java+se+jdk+download">Java SE JDK</a>. Viz taky <a rel="nofollow" class="external text" href="http://developer.android.com/sdk/index.html#Requirements">Requirements</a>
</p><p>Pokud máš zařízení s Androidem, vem ho s sebou. Stačí i nějaký starší kousek. Pokud nemáš, budeš používat emulátor, ten je v SDK. Ale bacha: <b>emulátor je nesnesitelně pomalej, pokud</b> nemáš v procáku Intel HAX (jestli máš, zjistíme na workshopu). V takovým případě je lepší pořídit si přímo zařízení, třeba starší telefon. Stačí si ho pořídit až po prvním workshopu po osobní konzultaci.
</p>
<h2><span class="mw-headline" id="Rozvrh">Rozvrh</span></h2>
<p>Z každýho setkání si odneseš novou praktickou dovednost. Z toho důvodu jsou jenom stanovený témata, který určují, jak budeme postupovat. Během jednoho workshopu můžeme vyčerpat víc než jedno téma, nebo ho taky načnout jenom zčásti.
</p><p>Potkáváme se pravidelně jednou za dva týdny.
</p>
<h2><span class="mw-headline" id="Workshop">Workshop</span></h2>
<p>Cíl je dostat se co nejdřív k reverzování, od toho potom zpátky ke kódu, programování, implementaci.
</p>
<h3><span class="mw-headline" id="Dev.C3.A1tej_workshop">Devátej workshop</span></h3>
<p>Probereme desátý téma.
</p>
<h3><span class="mw-headline" id="Prvn.C3.AD_t.C3.A9ma:_Android_Studio.2C_SDK.2C_prvn.C3.AD_app">První téma: Android Studio, SDK, první app</span></h3>
<p>Vytvoříme první aplikaci a zkusíme vytvořit podmínky pro její spuštění.
</p>
<ol><li> <a rel="nofollow" class="external text" href="http://developer.android.com/sdk/index.html">Android Studio</a></li>
<li> vytvoření první aplikace (app) / <a rel="nofollow" class="external text" href="https://developer.android.com/training/basics/firstapp/index.html">Building Your First App</a></li>
<li> příprava na spuštění app / <a rel="nofollow" class="external text" href="https://developer.android.com/training/basics/firstapp/running-app.html">Running Your App</a></li></ol>
<h3><span class="mw-headline" id="Druh.C3.BD_t.C3.A9ma:_Spu.C5.A1t.C4.9Bn.C3.AD_app.2C_emul.C3.A1tor.2C_za.C5.99.C3.ADzen.C3.AD">Druhý téma: Spuštění app, emulátor, zařízení</span></h3>
<p>Jak první app spustit? Můžeme v emulátoru nebo na fyzickým zařízení.
</p>
<ol><li> spuštění app / <a rel="nofollow" class="external text" href="https://developer.android.com/training/basics/firstapp/running-app.html">Running Your App</a></li>
<li> emulátor / <a rel="nofollow" class="external text" href="https://developer.android.com/training/basics/firstapp/running-app.html#Emulator">Run on the Emulator</a>, <a rel="nofollow" class="external text" href="http://developer.android.com/tools/devices/emulator.html">Using the Emulator</a></li>
<li> Android Debug Bridge / <a rel="nofollow" class="external text" href="https://developer.android.com/tools/help/adb.html">ADB</a></li>
<li> fyzický zařízení, USB debugging / <a rel="nofollow" class="external text" href="https://developer.android.com/training/basics/firstapp/running-app.html#RealDevice">Run on a Real Device</a></li>
<li> root vs. nonroot přístup na zařízení / <a rel="nofollow" class="external text" href="http://www.guidingtech.com/15973/rooting-android-benefits-disadvantages/">Šikovný shrnutí</a> a <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Rooting_%28Android_OS%29">sušší Wikipedie</a></li></ol>
<h3><span class="mw-headline" id="T.C5.99et.C3.AD_t.C3.A9ma:_kone.C4.8Dn.C4.9B_trocha_reverzov.C3.A1n.C3.AD:_vnit.C5.99nosti_skompilovan.C3.A9_app">Třetí téma: konečně trocha reverzování: vnitřnosti <a rel="nofollow" class="external text" href="http://list.hw.cz/pipermail/hw-list/2013-August/444285.html">skompilované</a> app</span></h3>
<p>Jaká je struktura app? Jak vypadá skompilovaná app? Co je to v ní navíc za podivný soubory?
</p>
<ol><li> struktura app / <a rel="nofollow" class="external text" href="https://developer.android.com/tools/projects/index.html#ApplicationModules">Android Application Modules</a></li>
<li> Android application package / <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Android_application_package">APK</a> (fakt neexistuje oficiální link?)</li>
<li> classes.dex / <a rel="nofollow" class="external text" href="http://developer.android.com/guide/appendix/glossary.html">.dex file</a></li>
<li> AndroidManifest.xml / <a rel="nofollow" class="external text" href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">App Manifest</a></li></ol>
<h3><span class="mw-headline" id=".C4.8Ctvrt.C3.BD_t.C3.A9ma:_z.C3.A1kladn.C3.AD_apps_pro_Android">Čtvrtý téma: základní apps pro Android</span></h3>
<p>Apps pro Android, co nám pomůžou při reverzingu.
</p>
<ol><li> <a rel="nofollow" class="external text" href="https://play.google.com/store/apps/details?id=jackpal.androidterm">Terminal Emulator</a></li>
<li> File manager / <a rel="nofollow" class="external text" href="https://play.google.com/store/apps/details?id=jackpal.androidterm">Root Browser</a>, <a rel="nofollow" class="external text" href="https://play.google.com/store/apps/details?id=com.ghisler.android.TotalCommander">Total Commander</a></li>
<li> <a rel="nofollow" class="external text" href="https://play.google.com/store/apps/details?id=eu.chainfire.adbd">adbd Insecure</a> (ADB daemon, běžící jako root)</li>
<li> Proxy / <a rel="nofollow" class="external text" href="https://play.google.com/store/apps/details?id=org.proxydroid">ProxyDroid</a></li>
<li> Hex editor / <a rel="nofollow" class="external text" href="https://play.google.com/store/apps/details?id=tuba.tools">Hex Editor</a></li></ol>
<h3><span class="mw-headline" id="P.C3.A1t.C3.BD_t.C3.A9ma:_app_po_instalaci.2C_ODEX">Pátý téma: app po instalaci, ODEX</span></h3>
<p>Co se stane s APK po instalaci? Změní se nějak soubory?
</p>
<ol><li> <code>/data/app</code> path</li>
<li> <code>/data/data</code> path</li>
<li> <code>/data/dalvik-cache</code> path</li>
<li> <code>/data/media/Android/obb/com.example.app</code> path: <a rel="nofollow" class="external text" href="http://developer.android.com/google/play/expansion-files.html">APK Expansion Files</a></li></ol>
<h3><span class="mw-headline" id=".C5.A0est.C3.BD_t.C3.A9ma:_Dekompilace_DEX_do_Java_k.C3.B3du.2C_disassembling">Šestý téma: Dekompilace DEX do Java kódu, disassembling</span></h3>
<p>Jaký máme k dispozici nástroje? Co dokážou?
</p>
<ol><li> dekompiler / <a rel="nofollow" class="external text" href="https://github.com/skylot/jadx/releases">jadx</a></li>
<li> disassembler / <a rel="nofollow" class="external text" href="https://code.google.com/p/smali/">smali</a></li></ol>
<h3><span class="mw-headline" id="Sedm.C3.BD_t.C3.A9ma:_reverzing_APK_ru.C4.8Dn.C4.9B">Sedmý téma: reverzing APK ručně</span></h3>
<p>Jak jde ručně změnit APK soubor? Co máme za nástroje?
</p>
<ol><li> backsmali, dexdump, IDA, ReDEX, Jarsigner</li>
<li> <a rel="nofollow" class="external text" href="http://developer.android.com/tools/publishing/app-signing.html">Signing Your Applications</a></li></ol>
<h3><span class="mw-headline" id="Osm.C3.BD_t.C3.A9ma:_C.23">Osmý téma: C#</span></h3>
<p>Vedle Javy jsou appky pro Android psaný i v C#. Jak fungují na úrovni kódu pod pokličkou? Analyzují se hůř než appky psaný v Javě? A co malware napsanej v C#?
</p>
<ol><li> <a rel="nofollow" class="external text" href="http://xamarin.com/studio">Xamarin Studio</a></li>
<li> <a rel="nofollow" class="external text" href="http://unity3d.com/">Unity3D Game Engine</a></li></ol>
<h3><span class="mw-headline" id="Dev.C3.A1t.C3.BD_t.C3.A9ma:_zachyt.C3.A1v.C3.A1n.C3.AD_HTTP.28S.29_komunikace">Devátý téma: zachytávání HTTP(S) komunikace</span></h3>
<p>Jak se dá na Androidu zachytávat HTTP(S) komunikace? Dokážeme nějak zabránit <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack">MITM</a> útoku?
</p>
<ul><li> <a rel="nofollow" class="external text" href="http://www.telerik.com/fiddler">Fiddler (host proxy, jenom pro Windows)</a></li>
<li> <a rel="nofollow" class="external text" href="https://developer.android.com/training/articles/security-ssl.html#Pinning">Android SSL pinning</a></li></ul>
<h3><span class="mw-headline" id="Des.C3.A1t.C3.BD_t.C3.A9ma:_crackme">Desátý téma: crackme</span></h3>
<p>Dejte mi vědět, jestli máte zájem řešit Android crackmes. Mám jich několik nachystaných.
</p>
<h2><span class="mw-headline" id="Histore_workshop.C5.AF">Histore workshopů</span></h2>
<p>Většina slidů je ve stavu původního návrhu před workshopem (proto "draft"). Chtěl jsem je ještě dodatečně upravit a vylepšit, ale zatím nestíhám.
</p><p>Slidy jsou PDF, ale musí být v ZIPu, wiki nedovoluje PDFka
</p>
<h3><span class="mw-headline" id="Prvn.C3.AD_workshop">První workshop</span></h3>
<p>Slidy: <a href="images/5/5f/AndroidRE1_draft.zip" class="internal" title="AndroidRE1 draft.zip">AndroidRE1 draft</a>
</p>
<ul><li> Android Studio</li>
<li> První aplikace</li>
<li> Spuštění aplikace</li></ul>
<h3><span class="mw-headline" id="Druhej_workshop">Druhej workshop</span></h3>
<p>Slidy: <a href="images/6/60/AndroidRE2.zip" class="internal" title="AndroidRE2.zip">AndroidRE2</a>
</p>
<ul><li> Spuštění app</li>
<li> APK soubor</li>
<li> Emulátor a Google Play</li>
<li> Android Debug Bridge: ADB</li>
<li> Struktura app</li></ul>
<h3><span class="mw-headline" id="T.C5.99et.C3.AD_workshop">Třetí workshop</span></h3>
<p>Slidy: <a href="images/a/aa/AndroidRE3_draft.zip" class="internal" title="AndroidRE3 draft.zip">AndroidRE3 draft</a>
</p>
<ul><li> Apps pro Android</li>
<li> Struktura app po instalaci</li>
<li> DEX, ODEX, DEODEX, WTF</li></ul>
<h3><span class="mw-headline" id=".C4.8Ctvrtej_workshop">Čtvrtej workshop</span></h3>
<p>Slidy: <a href="images/e/e5/AndroidRE4_draft.zip" class="internal" title="AndroidRE4 draft.zip">AndroidRE4 draft</a>
</p>
<ul><li> Dekompilace DEX pomocí <i>jadx</i></li>
<li> Disassembling DEX pomocí <i>baksmali</i></li>
<li> Dalvik bytecode</li></ul>
<h3><span class="mw-headline" id="P.C3.A1tej_workshop">Pátej workshop</span></h3>
<p>Tenhle jsem moc nevychytal, všechno se opakovalo v následujícím workshopu.
</p>
<h3><span class="mw-headline" id=".C5.A0estej_workshop">Šestej workshop</span></h3>
<p>Slidy: <a href="images/9/92/AndroidRE6_draft.zip" class="internal" title="AndroidRE6 draft.zip">AndroidRE6 draft</a>
</p>
<ul><li> Ruční modifikace APK</li>
<li> <i>baksmali</i>, <i>dexdump</i>, <i>IDA</i>, <i>ReDEX</i>, <i>jarsigner</i></li>
<li> Přebalení APK</li></ul>
<h3><span class="mw-headline" id="Sedmej_workshop">Sedmej workshop</span></h3>
<p>Slidy: <a href="images/1/11/AndroidRE7.zip" class="internal" title="AndroidRE7.zip">AndroidRE7</a>
</p>
<ul><li> C#/Java apps runtime</li>
<li> <i>Xamarin Studio</i></li>
<li> <i>Unity3D Game Engine</i></li>
<li> C# "monotated" malware (teoreticky)</li></ul>
<h3><span class="mw-headline" id="Osmej_workshop">Osmej workshop</span></h3>
<p>Slidy: <a href="images/f/fe/AndroidRE8_draft.zip" class="internal" title="AndroidRE8 draft.zip">AndroidRE8 draft</a>
</p>
<ul><li> Sledování HTTP(S) komunikace</li>
<li> <i>Fiddler</i></li>
<li> <i>ProxyDroid</i></li>
<li> SSL pinning</li></ul>
<h2><span class="mw-headline" id="n.C3.A1vod_na_p.C5.99id.C3.A1n.C3.AD_google_play_do_image">návod na přidání google play do image</span></h2>
<h3><span class="mw-headline" id="p.C5.99es_mount">přes mount</span></h3>
<ol><li> stáhněte si z <a rel="nofollow" class="external free" href="http://goo.im">http://goo.im</a> google apps pro kitkat, případně pro verzi, kterou používáte. Pro kk je to <a rel="nofollow" class="external free" href="http://goo.im/devs/gapps/gapps-kk-20140606-signed.zip">http://goo.im/devs/gapps/gapps-kk-20140606-signed.zip</a></li>
<li> rozbalte jej do nějakého adresáře, já ho budu označovat <i>x</i></li>
<li> přimountujte <i>system.img</i> z <i>~/Android/Sdk/system-images/android-19/default/x86/</i> (případně verzi, kterou používáte) příkazem <i>mount -o loop system.img /mnt</i></li>
<li> zkopírujte všechny soubory z <i>x/system</i> kromě adresáře <i>app</i> do odpovídajících adresářů v <i>/mnt</i></li>
<li> (zkopíroval sem ještě <i>x/system/app/PlusOne.apk</i> do odpovídajícího adresáře v <i>/mnt</i>, ale zdá se, že to je zbytečné, a možná i příčinou problému s Google+, bod 7.)</li>
<li> odmountujte /mnt</li>
<li> možná se setkáte s problémem, že bude vyskakovat okno, že Google+ se vysral. V tu chvíli ideálně nainstalujte Total Commander, a v nainstalovaných aplikacích vyberte Google+, a ten odinstalujte. Na funkčnost Google Play to nemá vliv (pro jistotu se předtím ještě do toho Google Play přihlašte / registrujte, to nemám otestovaný)</li></ol>
<h3><span class="mw-headline" id="p.C5.99.C3.ADmo_APK_soubory">přímo APK soubory</span></h3>
<p>Nevyzkoušeno: <a rel="nofollow" class="external free" href="http://www.flinkd.org/2013/12/installing-google-play-on-the-android-emulator-api-18/">http://www.flinkd.org/2013/12/installing-google-play-on-the-android-emulator-api-18/</a>
</p>
<!--
NewPP limit report
Cached time: 20220703091157
Cache expiry: 86400
Dynamic content: false
CPU time usage: 0.238 seconds
Real time usage: 0.267 seconds
Preprocessor visited node count: 509/1000000
Preprocessor generated node count: 1496/1000000
Post‐expand include size: 9375/2097152 bytes
Template argument size: 958/2097152 bytes
Highest expansion depth: 9/40
Expensive parser function count: 0/100
-->
<!--
Transclusion expansion time report (%,ms,calls,template)
100.00% 145.906 1 - Template:Project
100.00% 145.906 1 - -total
60.96% 88.948 13 - Template:ProjectInfoBoxItem
41.13% 60.015 2 - Template:Time
6.32% 9.225 8 - Template:ProjectInfoBoxItemDivider
5.35% 7.804 4 - Template:ProjectCategoryTags
-->
<!-- Saved in parser cache with key smwikidb:pcache:idhash:525-0!*!0!!en!5!* and timestamp 20220703091156 and revision id 3550
-->
</div> <div class="printfooter">
Retrieved from "<a dir="ltr" href="index.php%3Ftitle=AndroidRE&oldid=3550.html">index.php?title=AndroidRE&oldid=3550</a>" </div>
<div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="./Special:Categories.html" title="Special:Categories">Categories</a>: <ul><li><a href="./Category:Projects.html" title="Category:Projects">Projects</a></li><li><a href="./Category:Software_projects.html" title="Category:Software projects">Software projects</a></li></ul></div></div> <div class="visualClear"></div>
</div>
</div>
<div id="mw-navigation">
<h2>Navigation menu</h2>
<div id="mw-head">
<div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label">
<h3 id="p-personal-label">Personal tools</h3>
<ul>
<li id="pt-createaccount"><a href="./index.php%3Ftitle=Special:CreateAccount&returnto=AndroidRE.html" title="You are encouraged to create an account and log in; however, it is not mandatory">Create account</a></li><li id="pt-login"><a href="./index.php%3Ftitle=Special:UserLogin&returnto=AndroidRE.html" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li> </ul>
</div>
<div id="left-navigation">
<div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label">
<h3 id="p-namespaces-label">Namespaces</h3>
<ul>
<li id="ca-nstab-main" class="selected"><span><a href="AndroidRE.html" title="View the content page [c]" accesskey="c">Page</a></span></li>
<li id="ca-talk" class="new"><span><a href="index.php?title=Talk:AndroidRE&action=edit&redlink=1" title="Discussion about the content page [t]" accesskey="t" rel="discussion">Discussion</a></span></li>
</ul>
</div>
<div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label">
<h3 id="p-variants-label">
<span>Variants</span><a href="AndroidRE.html#"></a>
</h3>
<div class="menu">
<ul>
</ul>
</div>
</div>
</div>
<div id="right-navigation">
<div id="p-views" role="navigation" class="vectorTabs" aria-labelledby="p-views-label">
<h3 id="p-views-label">Views</h3>
<ul>
<li id="ca-view" class="selected"><span><a href="AndroidRE.html" >Read</a></span></li>
<li id="ca-viewsource"><span><a href="index.php%3Ftitle=AndroidRE&action=edit.html" title="This page is protected. You can view its source [e]" accesskey="e">View source</a></span></li>
<li id="ca-history" class="collapsible"><span><a href="index.php%3Ftitle=AndroidRE&action=history.html" title="Past revisions of this page [h]" accesskey="h">View history</a></span></li>
</ul>
</div>
<div id="p-cactions" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-cactions-label">
<h3 id="p-cactions-label"><span>More</span><a href="AndroidRE.html#"></a></h3>
<div class="menu">
<ul>
</ul>
</div>
</div>
<div id="p-search" role="search">
<h3>
<label for="searchInput">Search</label>
</h3>
<form action="index.php" id="searchform">
<div id="simpleSearch">
<input type="search" name="search" placeholder="Search" title="Search base48 [f]" accesskey="f" id="searchInput"/><input type="hidden" value="Special:Search" name="title"/><input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/><input type="submit" name="go" value="Go" title="Go to a page with this exact name if it exists" id="searchButton" class="searchButton"/> </div>
</form>
</div>
</div>
</div>
<div id="mw-panel">
<div id="p-logo" role="banner"><a class="mw-wiki-logo" href="index.html" title="Visit the main page"></a></div>
<div class="portal" role="navigation" id='p-Navigation' aria-labelledby='p-Navigation-label'>
<h3 id='p-Navigation-label'>Navigation</h3>
<div class="body">
<ul>
<li id="n-mainpage-description"><a href="index.html" title="Visit the main page [z]" accesskey="z">Main page</a></li><li id="n-portal"><a href="./Base48:Community_portal.html" title="About the project, what you can do, where to find things">Community portal</a></li><li id="n-currentevents"><a href="./Base48:Current_events.html" title="Find background information on current events">Current events</a></li><li id="n-recentchanges"><a href="./Special:RecentChanges.html" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li><li id="n-randompage"><a href="./Special:Random.html" title="Load a random page [x]" accesskey="x">Random page</a></li><li id="n-help"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents" title="The place to find out">Help</a></li> </ul>
</div>
</div>
<div class="portal" role="navigation" id='p-Organization' aria-labelledby='p-Organization-label'>
<h3 id='p-Organization-label'>Organization</h3>
<div class="body">
<ul>
<li id="n-Join-us"><a href="Join_us.html">Join us</a></li><li id="n-Space"><a href="Space.html">Space</a></li><li id="n-About"><a href="About.html">About</a></li><li id="n-Meetings"><a href="Meetings.html">Meetings</a></li><li id="n-Equipment"><a href="Equipment.html">Equipment</a></li> </ul>
</div>
</div>
<div class="portal" role="navigation" id='p-tb' aria-labelledby='p-tb-label'>
<h3 id='p-tb-label'>Tools</h3>
<div class="body">
<ul>
<li id="t-whatlinkshere"><a href="./Special:WhatLinksHere/AndroidRE.html" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li><li id="t-recentchangeslinked"><a href="Special:RecentChangesLinked/AndroidRE" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li id="t-specialpages"><a href="./Special:SpecialPages.html" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-print"><a href="index.php%3Ftitle=AndroidRE&printable=yes.html" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li><li id="t-permalink"><a href="index.php%3Ftitle=AndroidRE&oldid=3550.html" title="Permanent link to this revision of the page">Permanent link</a></li><li id="t-info"><a href="index.php%3Ftitle=AndroidRE&action=info.html" title="More information about this page">Page information</a></li><li id="t-smwbrowselink"><a href="./Special:Browse/AndroidRE.html" rel="smw-browse">Browse properties</a></li> </ul>
</div>
</div>
</div>
</div>
<div id="footer" role="contentinfo">
<ul id="footer-info">
<li id="footer-info-lastmod"> This page was last modified on 27 February 2016, at 16:22.</li>
<li id="footer-info-copyright">Content is available under <a class="external" rel="nofollow" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution Share Alike</a> unless otherwise noted.</li>
</ul>
<ul id="footer-places">
<li id="footer-places-privacy"><a href="Base48:Privacy_policy" title="Base48:Privacy policy">Privacy policy</a></li>
<li id="footer-places-about"><a href="./Base48:About.html" title="Base48:About">About base48</a></li>
<li id="footer-places-disclaimer"><a href="Base48:General_disclaimer" title="Base48:General disclaimer">Disclaimers</a></li>
</ul>
<ul id="footer-icons" class="noprint">
<li id="footer-copyrightico">
<a href="http://creativecommons.org/licenses/by-sa/3.0/"><img src="resources/assets/licenses/cc-by-sa.png" alt="Creative Commons Attribution Share Alike" width="88" height="31"/></a> </li>
<li id="footer-poweredbyico">
<a href="https://www.mediawiki.org/"><img src="resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="resources/assets/poweredby_mediawiki_132x47.png 1.5x, resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31"/></a><a href="https://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki"><img src="extensions/SemanticMediaWiki/res/images/smw_button.png" alt="Powered by Semantic MediaWiki" width="88" height="31"/></a> </li>
</ul>
<div style="clear:both"></div>
</div>
<script>(window.RLQ=window.RLQ||[]).push(function(){mw.loader.state({"user":"ready","user.groups":"ready"});mw.loader.load(["ext.smw.tooltips","mediawiki.toc","mediawiki.action.view.postEdit","site","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest"]);});</script>
<script src="extensions/Base48/common.js%3F303"></script><script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":324});});</script>
</body>
</html>