[Dangdang.com] Android программное обеспечение.

Цена: 1 446руб. (¥68.4)
Артикул: 597484146563
Доставка по Китаю (НЕ включена в цену):
127 руб. (¥6)
Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.
Описание товараPHA+PGltZyBjbGFzcz0iZGVzY19hbmNob3IiIGlkPSJkZXNjLW1vZHVsZS0xIiBzcmM9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20va2lzc3kvMS4wLjAvYnVpbGQvaW1nbGF6eWxvYWQvc3BhY2ViYWxsLmdpZiI+0KDQsNC30YDQsNCx0L7RgtC60LAg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y8gQW5kcm9pZCwg0L7QsdGA0LDRgtC90YvQuSDQsNC90LDQu9C40Lcg0Lgg0LTQuNC90LDQvNC40YfQtdGB0LrQsNGPINC+0YLQu9Cw0LTQutCwINCyIFdpbmRvd3MsIExpbnV4LCBNYWNPUzxicj7QodC70LXQtNGD0LnRgtC1INC+0LHRgNCw0YLQvdC+0LzRgyDQsNC90LDQu9C40LfRgyDRgdCx0L7RgNC60LggQVJNLCDQutGA0Y7Rh9C60LAsINC30LDRidC40YLRiyDQv9GA0L7Qs9GA0LDQvNC80L3QvtCz0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjywg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y8g0LggSmF2YSBMYXllciDQuCBUaGUgTmF0aXZlIExheWVyPGJyPtCh0LjRgdGC0LXQvNCw0YLQuNGH0LXRgdC60LjQtSDQutC+0LzQsNC90LTRiyDQuCDQuNC90YHRgtGA0YPQvNC10L3RgtGLINCy0LLQtdC00LXQvdC40LUsINGI0LDQsyAt0YjRgtC40L/QvdGL0LUg0YPRh9C10LHQvdGL0LUg0LzQsNGA0YjRgNGD0YLRiyDQuCDRj9GA0LrQuNC1INGB0YbQtdC90LDRgNC40Lgg0L/RgNC40LvQvtC20LXQvdC40LksINGD0LrQsNC30YvQstCw0Y7RidC40LUg0L3QsCDRgNGD0LrQuCAt0L3QsCDQv9GA0LDQutGC0LjQutC1PGJyPjxicj48aW1nIGNsYXNzPSJkZXNjX2FuY2hvciIgaWQ9ImRlc2MtbW9kdWxlLTIiIHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9raXNzeS8xLjAuMC9idWlsZC9pbWdsYXp5bG9hZC9zcGFjZWJhbGwuZ2lmIj48ZGl2IHN0eWxlPSJtYXJnaW46IDAuMHB4IGF1dG8gMjAuMHB4O2JvcmRlcjogMS4wcHggc29saWQgI2VkZWRlZDtvdmVyZmxvdzogaGlkZGVuO2RlbnRpdHk6IHByZF92MSAwLjBfMjAxODAxMzBfYmFzaWNfaW5mbzsiPjxkaXYgc3R5bGU9Im1hcmdpbjogMC4wcHggYXV0bztoZWlnaHQ6IDI1LjBweDtjb2xvcjogIzMzMzMzMztsaW5lLWhlaWdodDogMjUuMHB4O2ZvbnQtd2VpZ2h0OiBib2xkO3BhZGRpbmctbGVmdDogMTUuMHB4OyI+0J7RgdC90L7QstC90LDRjyDQuNC90YTQvtGA0LzQsNGG0LjRjzwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMC4wcHggYXV0bztwYWRkaW5nLWxlZnQ6IDE1LjBweDtib3JkZXItdG9wLXdpZHRoOiAxLjBweDtib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7Ym9yZGVyLXRvcC1jb2xvcjogI2VkZWRlZDtjb2xvcjogIzY2NjY2NjtsaW5lLWhlaWdodDogMjAuMHB4O2ZvbnQtc2l6ZTogMTIuMHB4O3BhZGRpbmctdG9wOiA1LjBweDsiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMTAiPjx0cj48dGQ+PHN0cm9uZz7QndCw0LfQstCw0L3QuNC1INC/0YDQvtC00YPQutGC0LA6PC9zdHJvbmc+PC90ZD48dGQgd2lkdGg9IjQyMHB4Ij7QkNCy0YLQvtGA0LjRgtC10YLQvdC+0LUg0YDRg9C60L7QstC+0LTRgdGC0LLQviDQv9C+INCx0LXQt9C+0L/QsNGB0L3QvtGB0YLQuCDQv9GA0L7Qs9GA0LDQvNC80L3QvtCz0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjyBBbmRyb2lkPC90ZD48dGQ+PHN0cm9uZz7RhNC+0YDQvNCw0YI6PC9zdHJvbmc+PC90ZD48dGQ+MTY8L3RkPjwvdHI+PHRyPjx0ZD48c3Ryb25nPtCQ0LLRgtC+0YA6PC9zdHJvbmc+PC90ZD48dGQ+RmVuZ3NoZW5ncWlhbmc8L3RkPjx0ZD48c3Ryb25nPtCm0LXQvdGLOjwvc3Ryb25nPjwvdGQ+PHRkPjk1LjAwPC90ZD48L3RyPjx0cj48dGQ+PHN0cm9uZz7QndC+0LzQtdGAIElTQk46PC9zdHJvbmc+PC90ZD48dGQ+OTc4NzEyMTM1NTIwMjwvdGQ+PHRkPjxzdHJvbmc+0JLRgNC10LzRjyDQv9GD0LHQu9C40LrQsNGG0LjQuDo8L3N0cm9uZz48L3RkPjx0ZD4yMDE5LTAzLTAxPC90ZD48L3RyPjx0cj48dGQ+PHN0cm9uZz7QmNC30LTQsNGC0LXQu9GM0YHRgtCy0L46PC9zdHJvbmc+PC90ZD48dGQ+0K3Qu9C10LrRgtGA0L7QvdC90LDRjyDQv9GA0L7QvNGL0YjQu9C10L3QvdCw0Y8g0L/RgNC10YHRgdCwPC90ZD48dGQ+PHN0cm9uZz7QktGA0LXQvNGPINC/0LXRh9Cw0YLQuDo8L3N0cm9uZz48L3RkPjx0ZD4yMDE5LTAzLTAxPC90ZD48L3RyPjx0cj48dGQ+PHN0cm9uZz7QmNC30LTQsNC90LjQtTo8L3N0cm9uZz48L3RkPjx0ZD4xPC90ZD48dGQ+PHN0cm9uZz7QktGA0LXQvNGPINC/0LXRh9Cw0YLQuDo8L3N0cm9uZz48L3RkPjx0ZD4xPC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9kaXY+0JPQu9Cw0LLQsCAxINCh0L7Qt9C00LDQudGC0LUg0YHRgNC10LTRgyDQsNC90LDQu9C40LfQsCDQtNC70Y8g0L/RgNC+0LPRgNCw0LzQvNGLIEFuZHJvaWQ8YnI+MS4xINCh0L7Qt9C00LDQvdC40LUg0YHRgNC10LTRiyDQsNC90LDQu9C40LfQsCBXaW5kb3dzIDE8YnI+MS4xLjEg0KPRgdGC0LDQvdC+0LLQuNGC0YwgSkRLIDE8YnI+MS4xLjIg0KPRgdGC0LDQvdC+0LLQuNGC0YwgQW5kcm9pZCBTREsgMjxicj4xLjEuMyDQo9GB0YLQsNC90L7QstC40YLQtSBBbmRyb2lkIE5ESyA1PGJyPjEuMS40IEFuZHJvaWQgU3R1ZGlvINCY0L3RgtC10LPRgNC40YDQvtCy0LDQvdC90LDRjyDRgdGA0LXQtNCwINGA0LDQt9GA0LDQsdC+0YLQutC4IDY8YnI+MS4xLjUg0KHQvtC30LTQsNGC0YwgQW5kcm9pZCBTaW11bGF0b3IgNzxicj4xLjEuNiBDeWd3aW4gOTxicj4xLjEuNyBCYXNoINC90LAgVWJ1bnR1INC90LAgV2luZG93cyAxMTxicj4xLjIg0J/QvtGB0YLRgNC+0LjRgtGMINGB0YDQtdC00YMg0LDQvdCw0LvQuNC30LAgbWFjT1MgMTI8YnI+MS4yLjEg0KPRgdGC0LDQvdC+0LLQuNGC0YwgSkRLIDEyPGJyPjEuMi4yINCj0YHRgtCw0L3QvtCy0LjRgtC1IEFuZHJvaWQgU0RLIDE0PGJyPjEuMi4zINCj0YHRgtCw0L3QvtCy0LjRgtC1IEFuZHJvaWQgTkRLIDE0PGJyPjEuMi40IEFuZHJvaWQgU3R1ZGlvINCY0L3RgtC10LPRgNC40YDQvtCy0LDQvdC90LDRjyDRgdGA0LXQtNCwINGA0LDQt9GA0LDQsdC+0YLQutC4IDE1PGJyPjEuMyDQodGC0YDQvtC40YLQtdC70YzQvdCw0Y8g0YHRgNC10LTQsCDQsNC90LDQu9C40LfQsCBVYnVudHUgMTU8YnI+MS4zLjEg0KPRgdGC0LDQvdC+0LLQuNGC0YwgSkRLIDE2PGJyPjEuMy4yINCj0YHRgtCw0L3QvtCy0LjRgtC1IEFuZHJvaWQgU0RLIDE3PGJyPjEuMy4zINCj0YHRgtCw0L3QvtCy0LjRgtC1IEFuZHJvaWQgTkRLIDE3PGJyPjEuMy40IEFuZHJvaWQgU3R1ZGlvINCY0L3RgtC10LPRgNC40YDQvtCy0LDQvdC90LDRjyDRgdGA0LXQtNCwINGA0LDQt9GA0LDQsdC+0YLQutC4IDE4PGJyPjEuNCDQntCx0YnQuNC5INC40L3RgdGC0YDRg9C80LXQvdGCINC+0LHRgNCw0YLQvdC+0LPQviDQsNC90LDQu9C40LfQsCAxOTxicj4xLDUg0J7QsdGL0YfQvdCw0Y8g0LrQvtC80LDQvdC00LAgTGludXggU2hlbGwgMTk8YnI+MS42INCh0YDQtdC00LAg0LDQvdCw0LvQuNC30LAg0LjRgdGC0L7Rh9C90LjQutCwINGB0YLRgNC+0LjRgtC10LvRjNGB0YLQstCwIDIwPGJyPjEuNi4xINCa0L7QvNC/0LjQu9C40YDQvtCy0LDQvdC40LUg0LjRgdGF0L7QtNC90L7Qs9C+INC60L7QtNCwIEFuZHJvaWQg0LIgTWFjT1MgMjA8YnI+MS42LjIg0JrQvtC80L/QuNC70LjRgNC+0LLQsNC90LjQtSDQuNGB0YXQvtC00L3QvtCz0L4g0LrQvtC00LAgQW5kcm9pZCDQsiBVYnVudHUgMjY8YnI+MS42LjMg0JrQvtC80L/QuNC70LjRgNC+0LLQsNC90LjQtSDQuNGB0YXQvtC00L3QvtCz0L4g0LrQvtC00LAgQW5kcm9pZCAyNiDQsiBXaW5kb3dzPGJyPjEuNyDQoNC10LfRjtC80LUg0Y3RgtC+0Lkg0LPQu9Cw0LLRiyAyNzxicj48YnI+0JPQu9Cw0LLQsCAyINCa0LDQuiDQv9GA0L7QsNC90LDQu9C40LfQuNGA0L7QstCw0YLRjCDQv9GA0L7Qs9GA0LDQvNC80YMgQW5kcm9pZDxicj4yLjEg0J3QsNC/0LjRiNC40YLQtSrQv9GA0L7Qs9GA0LDQvNC80LAgQW5kcm9pZCAyODxicj4yLjEuMSDQodC+0LfQtNCw0L3QuNC1IEFuZHJvaWQgUHJvamVjdCAyODxicj4yLjEuMiDQmtC+0LzQv9C40LvQuNGA0YPQudGC0LUg0Lgg0LPQtdC90LXRgNC40YDRg9C50YLQtSDRhNCw0LnQuyBBUEsgMzA8YnI+Mi4yIENyYWNrKkFuZHJvaWQgLdC/0YDQvtCz0YDQsNC80LzQsCAzNTxicj4yLjIuMSBDcmFjayDQuCDQvdCw0YfQvdC40YLQtSDRgSAzNTxicj4yLjIuMiDQkNC90YLQuCAt0LrQvtC80L/QuNC70Y/RhtC40L7QvdC90YvQuSDRhNCw0LnQuyBBUEsgMzU8YnI+Mi4yLjMg0JDQvdCw0LvQuNC3IEFQSyAt0YTQsNC50LsgMzY8YnI+Mi4yLjQg0JjQt9C80LXQvdC40YLQtSDQutC+0LQg0YTQsNC50LvQsCBTbWFsaSA0NDxicj4yLjIuNSByZSAtY29tcGlsZSDRhNCw0LnQuyBBUEsg0Lgg0LfQvdCw0LogNDU8YnI+Mi4yLjYg0KPRgdGC0LDQvdC+0LLQutCwINC4INGC0LXRgdGCIDQ3PGJyPjIuMi43INCg0LXQt9GO0LzQtSA0ODxicj4yLjMg0KDQtdC30Y7QvNC1INGN0YLQvtC5INCz0LvQsNCy0YsgNDg8YnI+PGJyPtCT0LvQsNCy0LAgMyDQlNCw0LvQstC40Log0LjRgdC/0L7Qu9C90Y/QtdC80YvQuSDRhNC+0YDQvNCw0YIg0Lgg0YHQv9C10YbQuNGE0LjQutCw0YbQuNGPINCx0LDQudGCIC3QutC+0LTQvtCyPGJyPjMuMSBEYWx2aWsgVmlydHVhbCBNYWNoaW5lIDQ5PGJyPjMuMS4xIERhbHZpayBWaXJ0dWFsIE1hY2hpbmUg0LjQvNC10LXRgiA0OTxicj4zLjEuMiBEYXJ2aWsgVmlydHVhbCBNYWNoaW5lINC4IEphdmEgVmlydHVhbCBNYWNoaW5lIDQ5PGJyPjMuMS4zINCf0YDQvtGG0LXRgdGBINCy0YvQv9C+0LvQvdC10L3QuNGPINCy0LjRgNGC0YPQsNC70YzQvdC+0Lkg0LzQsNGI0LjQvdGLIDU0PGJyPjMuMS40INCc0LXRgtC+0LQg0LLRi9C/0L7Qu9C90LXQvdC40Y8g0LLQuNGA0YLRg9Cw0LvRjNC90L7QuSDQvNCw0YjQuNC90YsgNTY8YnI+My4yIERhbHZpayBMYW5ndWFnZSBCYXNlIDU2PGJyPjMuMi4xINCk0L7RgNC80LDRgiDQuNC90YHRgtGA0YPQutGG0LjQuCBEYWx2aWsgNTc8YnI+My4yLjIg0JjQvdGB0YLRgNGD0LzQtdC90YIg0LrQvtC80L/QuNC70Y/RhtC40LggRGV4IENhcGl0YWwgNTg8YnI+My4yLjMgRGFsdmlrIFJlZ2lzdGVyIDU5PGJyPjMuMi40INCc0LXRgtC+0LQg0LjQvNC10L3QvtCy0LDQvdC40Y8g0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCA2MTxicj4zLjIuNSBEYWx2aWsgQnl0ZWNvZGUgNjI8YnI+My4zINCd0LDQsdC+0YAg0LjQvdGB0YLRgNGD0LrRhtC40LkgRGFsdmlrIDYzPGJyPjMuMy4xINCi0LjQvyDQuNC90YHRgtGA0YPQutGG0LjQuCA2NDxicj4zLjMuMiDQmNC90YHRgtGA0YPQutGG0LjQuCDQv9C+INGN0LrRgdC/0LvRg9Cw0YLQsNGG0LjQuCDQstC+0LfQtNGD0YXQsCA2NDxicj4zLjMuMyDQmNC90YHRgtGA0YPQutGG0LjQuCDQv9C+INGA0LDQsdC+0YLQtSDRgSDQtNCw0L3QvdGL0LzQuCA2NDxicj4zLjMuNCDQmNC90YHRgtGA0YPQutGG0LjRjyDQstC+0LfQstGA0LDRgtCwIDY1PGJyPjMuMy41INCY0L3RgdGC0YDRg9C60YbQuNGPINC/0L4g0L7Qv9GA0LXQtNC10LvQtdC90LjRjiDQtNCw0L3QvdGL0YUgNjU8YnI+My4zLjYg0JjQvdGB0YLRgNGD0LrRhtC40Y8g0LHQu9C+0LrQuNGA0L7QstC60LggNjY8YnI+My4zLjcg0J/RgNC40LzQtdGAINC40L3RgdGC0YDRg9C60YbQuNC4INC/0L4g0Y3QutGB0L/Qu9GD0LDRgtCw0YbQuNC4IDY2PGJyPjMuMy44INCY0L3RgdGC0YDRg9C60YbQuNGPINC/0L4g0Y3QutGB0L/Qu9GD0LDRgtCw0YbQuNC4INC80LDRgdGB0LjQstCwIDY2PGJyPjMuMy45INCY0L3RgdGC0YDRg9C60YbQuNC4IE9EWCA2Nzxicj4zLjMuMTA8YnI+My4zLjExINCY0L3RgdGC0YDRg9C60YbQuNGPINGB0YDQsNCy0L3QtdC90LjRjyA2ODxicj4zLjMuMTIg0JjQvdGB0YLRgNGD0LrRhtC40Lgg0L/QviDRjdC60YHQv9C70YPQsNGC0LDRhtC40Lgg0L/QvtC70Y8gNjk8YnI+My4zLjEzINCc0LXRgtC+0LQg0JjQvdGB0YLRgNGD0LrRhtC40Y8g0L/QviDQstGL0LfQvtCy0YMgNjk8YnI+My4zLjE0INCY0L3RgdGC0YDRg9C60YbQuNGPINC/0L4g0L/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjRjiDQtNCw0L3QvdGL0YUgNzA8YnI+My4zLjE1INCY0L3RgdGC0YDRg9C60YbQuNGPINC/0L4g0LLRi9GH0LjRgdC70LXQvdC40Y4g0LTQsNC90L3Ri9GFIDcwPGJyPjMuNCBEYWx2aWsg0JjQvdGB0YLRgNGD0LrRhtC40Y8g0YPQv9GA0LDQttC90LXQvdC40Y8gNzE8YnI+My40LjEg0JfQsNC/0LjRgdCw0YLRjCBTbWFsaSBGaWxlIDcxPGJyPjMuNC4yINCh0LrQvtC80L/QuNC70LjRgNGD0LnRgtC1IFNtYWxpIEZpbGUgNzM8YnI+My40LjM8YnI+My41INCh0LLQvtC00LrQsCDRjdGC0L7QuSDQs9C70LDQstGLIDczPGJyPjxicj7Qk9C70LDQstCwIDQg0J7QsdGJ0LjQuSDRhNC+0YDQvNCw0YIg0YTQsNC50LvQvtCyIEFuZHJvaWQ8YnI+NC4xINCk0LDQudC7INCx0LjQsdC70LjQvtGC0LXQutC4IDc0PGJyPjQuMS4xIEphciBQYWNrYWdlIDc0PGJyPjQuMS4yIEFBUiBQQUNLIDc1PGJyPjQuMiBBUEsgNzg8YnI+NC4yLjEg0KHRgtGA0YPQutGC0YPRgNCwINGE0LDQudC70LAgQVBLIDc4PGJyPjQuMi4yINCf0YDQvtGG0LXRgdGBINCz0LXQvdC10YDQsNGG0LjQuCDRhNCw0LnQu9CwIEFQSyA3OTxicj40LjIuMyDQn9GA0L7RhtC10YHRgSDRg9GB0YLQsNC90L7QstC60LggQVBLIDg0PGJyPjQuMyBDbGFzc2VzLmRleCA5MDxicj40LjMuMSBERVgg0KHRgtGA0YPQutGC0YPRgNCwINGE0LDQudC70LAgOTA8YnI+NC4zLjIg0J/RgNC+0LLQtdGA0LrQsCDQuCDQvtC/0YLQuNC80LjQt9Cw0YbQuNGPINGE0LDQudC70LAgREVYIDEwNDxicj40LjMuMyDQnNC+0LTQuNGE0LjQutCw0YbQuNGPINGE0LDQudC70LAgREVYIDEwODxicj40LjMuNCBNdWx0aWRleCAxMTE8YnI+NC40IEFuZHJvaWRtYW5pZmVzdC54bWwgMTEzPGJyPjQuNC4xINCk0L7RgNC80LDRgiDRhNCw0LnQu9CwIEFuZHJvaWRNYW5pZmVzdC54bWwgMTEzPGJyPjQuNC4yINCk0L7RgNC80LDRgiDRhNCw0LnQu9CwIGF4bWwgMTE0PGJyPjQuNC4zINCc0L7QtNC40YTQuNC60LDRhtC40Y8g0YTQsNC50LvQsCBBWE1MIDEyMTxicj40LjUg0KDQtdGB0YPRgNGB0YsuIEFSU0MgMTIxPGJyPjQuNS4xINCk0L7RgNC80LDRgiDRhNCw0LnQu9CwIEFSU0MgMTIyPGJyPjQuNS4yINCc0L7QtNC40YTQuNC60LDRhtC40Y8g0YTQsNC50LvQsCBBUlNDIDEyODxicj40LjYg0JzQtdGC0LAt0LrQsNGC0LDQu9C+0LMgMTI4PGJyPjQuNi4xIGNlcnQucnNhIDEyODxicj40LjYuMiBNYW5pZmVzdC5tZiAxMjk8YnI+NC42LjMgY2VydC5zZiAxMzA8YnI+NC43IE9ERVggMTMyPGJyPjQuNy4xINCh0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINGE0LDQudC7IG9kZXggMTMyPGJyPjQuNy4yINCk0L7RgNC80LDRgiDRhNCw0LnQu9CwIE9ERVggMTMyPGJyPjQuNy4zINCa0L7QvdCy0LXRgNGC0LjRgNC+0LLQsNGC0Ywg0YTQsNC50LsgT0RFWCDQsiDRhNCw0LnQuyBERVggMTM2PGJyPjQuOCBPQVQgMTM3PGJyPjQuOC4xIEFydCBWaXJ0dWFsIE1hY2hpbmUgMTM3PGJyPjQuOC4yINCh0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINC+0LLRgdGP0L3Ri9C5INGE0LDQudC7IDEzNzxicj40LjguMyDQpNC+0YDQvNCw0YIg0L7QstGB0Y/QvdC+0LPQviDRhNCw0LnQu9CwIDEzODxicj40LjguNCDQmtC+0L3QstC10YDRgtC40YDQvtCy0LDRgtGMINGE0LDQudC7INC+0LLRgdCwINCyINGE0LDQudC7IERFWCAxNDE8YnI+NC45INCh0LLQvtC00LrQsCDRjdGC0L7QuSDQs9C70LDQstGLIDE0Mzxicj48YnI+0JPQu9Cw0LLQsCA1INCh0YLQsNGC0LjRh9C10YHQutC40Lkg0LDQvdCw0LvQuNC3IEFuZHJvaWQg0J/RgNC+0LPRgNCw0LzQvNCwPGJyPjUuMSDQodGC0LDRgtC40YfQtdGB0LrQuNC5INCw0L3QsNC70LjQtyDQktCy0LXQtNC10L3QuNC1IDE0NTxicj41LjIg0KfRgtC10L3QuNC1INC60L7QtNCwIFNtYWxpIDE0NTxicj41LjIuMSDQodGC0YDRg9C60YLRg9GA0LAg0YTQsNC50LvQsCBTbWFsaSAxNDU8YnI+NS4yLjIg0JXQstGA0L7Qv9C10LnRgdC60L7QtSDQv9GA0LXQtNC70L7QttC10L3QuNC1IDE0ODxicj41LjIuMyDQn9C10YDQtdC60LvRjtGH0LXQvdC40LUg0LLQtdGC0LLQuC4g0J/RgNC10LTQu9C+0LbQtdC90LjQtSAxNTM8YnI+NS4yLjQuINCf0L7Qv9GA0L7QsdGD0LnRgtC1L9Cf0L7QudC80LDQudGC0LUg0LfQsNGP0LLQu9C10L3QuNC1IDE1ODxicj41LjMg0KfQuNGC0LDRgtGMINC60L7QtCBKYXZhIDE2Mzxicj41LjMuMSDQmtC+0L3QstC10YDRgtC40YDQvtCy0LDRgtGMINGE0LDQudC7IERFWCDQsiDQv9Cw0LrQtdGCIEpBUiAxNjM8YnI+NS4zLjIg0JjQvdGB0YLRgNGD0LzQtdC90YIg0LDQvdCw0LvQuNC30LAgSkFSIDE2Mzxicj41LjQg0KLQtdGF0L3QuNC60LAg0L/QvtC30LjRhtC40L7QvdC40YDQvtCy0LDQvdC40Y8g0LrQvtC00LAgMTY0PGJyPjUuNC4xINCc0LXRgtC+0LQg0LDQvdCw0LvQuNC30LAg0LLRhdC+0LTQsCAxNjQ8YnI+NS40LjIg0JzQtdGC0L7QtCDQvtCx0YDQsNGC0L3QvtC5INGB0LLRj9C30Lgg0YEg0LjQvdGE0L7RgNC80LDRhtC40LXQuSAxNjU8YnI+NS40LjMg0JzQtdGC0L7QtCDRhNGD0L3QutGG0LjQuCDRhNGD0L3QutGG0LjQuCAxNjU8YnI+NS41INCY0YHQv9C+0LvRjNC30YPQudGC0LUgSkVCINC00LvRjyDRgdGC0LDRgtC40YfQtdGB0LrQvtCz0L4g0LDQvdCw0LvQuNC30LAgMTY1PGJyPjUuNS4xINCj0YHRgtCw0L3QvtCy0LjRgtGMIEpFQiAxNjU8YnI+NS41LjIg0KHRgtCw0YLQuNGH0LXRgdC60L7QtSDQsNC90LDQu9C40Lcg0KTRg9C90LrRhtC40Y8gSkVCIDE2Njxicj41LjUuMyDQodGG0LXQvdCw0YDQuNC5INCU0LbQtdCx0LAg0Lgg0L/Qu9Cw0LPQuNC9IC1JTiAxNjk8YnI+NS42INCY0YHQv9C+0LvRjNC30YPQudGC0LUgSURBIFBybyDQtNC70Y8g0YHRgtCw0YLQuNGH0LXRgdC60L7Qs9C+INCw0L3QsNC70LjQt9CwIDE3MDxicj41LjYuMSDQn9C+0LTQtNC10YDQttC60LAgSURBIFBybyDQtNC70Y8gQW5kcm9pZCAxNzA8YnI+NS42LjIg0JDQvdCw0LvQuNC3INGE0LDQudC7IERFWCAxNzA8YnI+NS42LjMg0JrQvtC0INC/0L7Qt9C40YbQuNC+0L3QuNGA0L7QstCw0L3QuNGPIDE3Mjxicj41Ljcg0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSBBbmRyb2d1YXJkINC00LvRjyDRgdGC0LDRgtC40YfQtdGB0LrQvtCz0L4g0LDQvdCw0LvQuNC30LAgMTc0PGJyPjUuNy4xINCj0YHRgtCw0L3QvtCy0LjRgtGMIEFuZHJvZ3VhcmQgMTc1PGJyPjUuNy4yINCa0LDQuiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgQW5kcm9ndWFyZCAxNzU8YnI+NS43LjMg0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSBhbmRyb2x5emUucHkg0LTQu9GPINCw0L3QsNC70LjQt9CwIDE3OTxicj41Ljgg0KDQtdC30Y7QvNC1INGN0YLQvtC5INCz0LvQsNCy0YsgMTgyPGJyPjxicj7Qk9C70LDQstCwIDYg0JTQuNC90LDQvNC40YfQtdGB0LrQuNC5INCw0L3QsNC70LjQtyBBbmRyb2lkINC/0YDQvtCz0YDQsNC80LzRizxicj42LjEg0JTQuNC90LDQvNC40YfQtdGB0LrQsNGPINGB0YLRgNGD0LrRgtGD0YDQsCDQsNC90LDQu9C40LfQsCAxODM8YnI+Ni4yINCd0LDQstGL0LrQuCDQtNC40L3QsNC80LjRh9C10YHQutC+0LPQviDQsNC90LDQu9C40LfQsCAxODk8YnI+Ni4yLjEg0JzQtdGC0L7QtCDQuNC90YrQtdC60YbQuNC4INC60L7QtNCwIDE4OTxicj42LjIuMiDQnNC10YLQvtC0INGB0YLQtdC60LAgMTkyPGJyPjYuMi4zINCf0YDQvtGE0LjQu9C40YDQvtCy0LDQvdC40LUg0LzQtdGC0L7QtNCwIDE5Mzxicj42LjIuNCDQn9GA0L7QstC10YDQutCwINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQvtCz0L4g0LjQvdGC0LXRgNGE0LXQudGB0LAgMTk2PGJyPjYuMyDQmNGB0L/QvtC70YzQt9GD0LnRgtC1IEpEQiBEeW5hbWljIERlYnVnIEFQSyAxOTg8YnI+Ni40INCY0YHQv9C+0LvRjNC30YPQudGC0LUgSkVCIER5bmFtaWMgRGVidWcgQVBLIDIwMDxicj42LjUg0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSBJREEgUHJvIER5bmFtaWNhbCBEZXZ1ZyBBUEsgMjAxPGJyPjYuNiDQoNC10LfRjtC80LUg0Y3RgtC+0Lkg0LPQu9Cw0LLRiyAyMDM8YnI+PGJyPtCT0LvQsNCy0LAgNyDQntGB0L3QvtCy0L3QsNGPINC60L7QvNC/0LjQu9GP0YbQuNGPIEFSTTxicj43LjEgQW5kcm9pZCDQuCBBcm0gUHJvY2Vzc29yIDIwNDxicj43LjEuMSDQntCx0LfQvtGAINCw0YDRhdC40YLQtdC60YLRg9GA0Ysg0L/RgNC+0YbQtdGB0YHQvtGA0LAgQVJNIDIwNDxicj43LjEuMiDQkNGA0YXQuNGC0LXQutGC0YPRgNCwINC/0YDQvtGG0LXRgdGB0L7RgNCwLCDQv9C+0LTQtNC10YDQttC40LLQsNC10LzQsNGPIEFuZHJvaWQgMjA1PGJyPjcuMiBBbmRyb2lkIEFybSBFYWJpIDIwNjxicj43LjIuMSBBcm1lYWJpIDIwNjxicj43LjIuMiBBcm1lYWJpLVY3YSAyMDc8YnI+Ny4yLjMgQVJNNjQtVjhBIDIwODxicj43LjMuINCT0LXQvdC10YDQsNGG0LjRjyDQs9C10L3QtdGA0LDRhtC40Lgg0L3QsNGC0LjQstC90L7QuSDQv9GA0L7Qs9GA0LDQvNC80YsgQVJNIDIwODxicj43LjMuMSDQn9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdCw0Y8g0L7QsdGA0LDQsdC+0YLQutCwIDIxMDxicj43LjMuMiDQmtC+0LzQv9C40LvQuNGA0L7QstCw0L3QuNC1IDIxMTxicj43LjMuMyDQodCx0L7RgNC60LAgMjE1PGJyPjcuMy40INCh0YHRi9C70LrQsCAyMTU8YnI+Ny40INCv0LfRi9C6INCQ0YHRgdCw0LzQsdC70LXQuCAyMTY8YnI+Ny40LjEg0KHRgtGA0YPQutGC0YPRgNCwINC/0YDQvtCz0YDQsNC80LzRiyDRgdCx0L7RgNC60LggQVJNIDIxNjxicj43LjQuMiDQmNC90YHRgtGA0YPQutGG0LjQuCDQv9C+INGB0LHQvtGA0LrQtSAyMjE8YnI+Ny40LjMg0KDQtdCz0LjRgdGC0YDQsNGG0LjRjyAyMjM8YnI+Ny40LjQg0JzQtdGC0L7QtCDQvtCx0YDQsNGJ0LXQvdC40Y8g0L/RgNC+0YbQtdGB0YHQvtGA0LAgMjI0PGJyPjcuNC41LiDQn9Cg0J7QktCV0KDQmtCQINCf0JDQoNCQ0JzQldCi0KDQkCAyMjcg0J/QvtC00L/RgNC+0LPRgNCw0LzQvNGLIDIyNzxicj43LjUg0J3QsNCx0L7RgCDQuNC90YHRgtGA0YPQutGG0LjQuSDQv9C+INGB0LHQvtGA0LrQtSDRgNGD0LogMjMwPGJyPjcuNS4xINCa0LvQsNGB0YHQuNGE0LjQutCw0YbQuNGPINC90LDQsdC+0YDQsCDQuNC90YHRgtGA0YPQutGG0LjQuSBBUk0gMjMwPGJyPjcuNS4yINCa0L7QtNC40YDQvtCy0LrQsCDQuNC90YHRgtGA0YPQutGG0LjQuCAyMzE8YnI+Ny41LjMg0JDQvdCw0LvQuNC3INGE0L7RgNC80LDRgtCwINC40L3RgdGC0YDRg9C60YbQuNC4IEFSTSAyMzM8YnI+Ny41LjQuPGJyPjcuNiDQndCw0LHQvtGAINC40L3RgdGC0YDRg9C60YbQuNC5INC/0L4g0LrQvtC80L/QuNC70Y/RhtC40Lgg0LHQvtC70YzRiNC+0LPQviDQv9Cw0LvRjNGG0LAgMjQwPGJyPjcuNi4xIDE2IC3QsdC40YLQvdCw0Y8g0LjQvdGB0YLRgNGD0LrRhtC40Y8g0LrQvtC00LjRgNGD0LXRgiAyNDA8YnI+Ny42LjIgMTYgLdCx0LjRgtC90YvQuSDQsNC90LDQu9C40Lcg0LjQvdGB0YLRgNGD0LrRhtC40LkgMjQxPGJyPjcuNi4zIDMyIC1iaXQgcGxpZ2luZyDQmNC90YHRgtGA0YPQutGG0LjRjywg0LrQvtC00LjRgNGD0Y7RidCw0Y8gMjQyPGJyPjcuNi40IDMyIC1iaXQgcGhpbiB0aHVtYiDQkNCd0JDQm9CY0Jcg0KTQvtGA0LzQsNGC0LAgMjQ0PGJyPjcuNyBBQVJDSDY0INCh0LHQvtGAINC60L7QvNCw0L3QtCDQutC+0LzQv9C40LvRj9GG0LjQuCAyNDY8YnI+Ny43LjEgQWFyY2g2NCDQmNC90YHRgtGA0YPQutGG0LjRjywg0LrQvtC00LjRgNGD0Y7RidCw0Y8gMjQ2PGJyPjcuNy4yIEFhcmNoNjQg0JDQvdCw0LvQuNC3INGE0L7RgNC80LDRgtCwINC40L3RgdGC0YDRg9C60YbQuNC5IDI0Nzxicj43Ljgg0KDQtdC30Y7QvNC1INGN0YLQvtC5INCz0LvQsNCy0YsgMjUwPGJyPjxicj7Qk9C70LDQstCwIDgg0KDQsNC30YDQsNCx0L7RgtC60LAg0L/RgNC+0LPRgNCw0LzQvNGLIEFuZHJvaWQg0Lgg0L7QsdGA0LDRgtC90YvQuSDQsNC90LDQu9C40LcgQW5kcm9pZDxicj44LjEg0KDQsNC30YDQsNCx0L7RgtC60LAg0L3QsNGC0LjQstC90L7QuSDQv9GA0L7Qs9GA0LDQvNC80YsgMjUxPGJyPjguMS4xIE5hdGl2ZSBQcm9ncmFtIEVuZ2luZWVyaW5nIDI1Mjxicj44LjEuMiBTVEwgQ2hvaWNlIDI1Mzxicj44LjEuMyBKTkkgMjU0PGJyPjguMS40INCf0LDRgNCw0LzQtdGC0YDRiyDQutC+0LzQv9C40LvRj9GG0LjQuCDQuCDRjdC70LXQvNC10L3RgtGLINC60L7QvdGE0LjQs9GD0YDQsNGG0LjQuCAyNTY8YnI+OC4yINCi0YDQsNC90YHQv9C70LDQvdGC0LDRhtC40Y8g0L3QsNGC0LjQstC90L7QuSDQv9GA0L7Qs9GA0LDQvNC80YsgMjU2PGJyPjguMi4xINCi0YDQsNC90YHQv9C70LDQvdGC0LDRhtC40Y8g0L/RgNC+0LXQutGC0LAgQURUIDI1Nzxicj44LjIuMiDQotGA0LDQvdGB0L/Qu9Cw0L3RgtCw0YbQuNGPINC/0YDQvtC10LrRgtCwINGBINC+0YLQutGA0YvRgtGL0Lwg0LjRgdGF0L7QtNC90YvQvCDQutC+0LTQvtC8IDI1ODxicj44LjIuMyDQotGA0LDQvdGB0L/Qu9Cw0L3RgtCw0YbQuNGPINC/0YDQvtC10LrRgtCwIENNQUtFIDI2Mjxicj44LjIuNCDQotGA0LDQvdGB0L/Qu9Cw0L3RgtCw0YbQuNGPINC00YDRg9Cz0LjRhSDRgtC40L/QvtCyINC/0YDQvtC10LrRgtC+0LIgMjY0PGJyPjguMyDQpNGD0L3QutGG0LjRjyDQstGF0L7QtNCwINC90LDRgtC40LLQvdC+0LPQviDQv9GA0L7Qs9GA0LDQvNC80YsgMjY0PGJyPjguMy4xINCQ0L3QsNC70LjQtyDRhNGD0L3QutGG0LjQuSDQstCy0L7QtNCwINC/0YDQvtCz0YDQsNC80LzRiyAyNjQ8YnI+OC4zLjIg0KLQsNC60LjQvCDQvtCx0YDQsNC30L7QvCwg0LDQvdCw0LvQuNC3INGE0YPQvdC60YbQuNC5INCy0YXQvtC00LAgMjY5PGJyPjguNCDQpNC+0YDQvNCw0YIg0L3QsNGC0LjQstC90L7Qs9C+INC/0YDQvtCz0YDQsNC80LzRiyAyNzE8YnI+OC40LjEg0KLQuNC/0Ysg0YTQsNC50LvQvtCyINC90LDRgtC40LLQvdGL0YUg0L/RgNC+0LPRgNCw0LzQvCAyNzE8YnI+OC40LjIgQWFyY2g2NCBGaWxlIEZpbGUgRm9ybWF0IDI3NDxicj44LjQuMyDQl9Cw0LPQvtC70L7QstC+0Log0L/RgNC+0LPRgNCw0LzQvNGLINCi0LDQsdC70LjRhtCwIDI3ODxicj44LjQuNCDQl9Cw0LPQvtC70L7QstC+0Log0YDQsNC30LTQtdC70LAg0KLQsNCx0LvQuNGG0LAgMjgxPGJyPjguNC41LmR5bmFtaWMg0KDQsNC30LTQtdC7IDI4Mzxicj44LjQuNiDQodGC0YDQvtC60LAg0KLQsNCx0LvQuNGG0LAgMjg1PGJyPjguNC43INCh0LjQvNCy0L7QuyDQotCw0LHQu9C40YbQsCAyODY8YnI+OC40Ljgg0J/QvtC70YPRh9C10L3QvdCw0Y8g0YLQsNCx0LvQuNGG0LAg0Lgg0YLQsNCx0LvQuNGG0LAgUExUIDI4Nzxicj44LjQuOSDQoNC10LrQvtC90YHRgtGA0YPQutGG0LjRjyDQsNC00YDQtdGB0LAg0KLQsNCx0LvQuNGG0LAgMjkxPGJyPjguNSDQmNC90YHRgtGA0YPQvNC10L3RgiDQvtCx0YDQsNGC0L3QvtCz0L4g0LDQvdCw0LvQuNC30LAg0L3QsNGC0LjQstC90L7QuSDQv9GA0L7Qs9GA0LDQvNC80YsgMjk1PGJyPjguNS4xIE5ESyBUb29sY2hhaW4gMjk1PGJyPjguNS4yIElEQSBQcm8gMjk3PGJyPjguNS4zINCl0L7Qv9C/0LXRgCAzMDE8YnI+OC42INCd0LDRgtC40LLQvdCw0Y8g0L/RgNC+0LPRgNCw0LzQvNCwIEMg0J/RgNC+0LPRgNCw0LzQvNCwINC+0LHRgNCw0YLQvdGL0Lkg0LDQvdCw0LvQuNC3IDMwMjxicj44LjYuMSDQmtC+0LzQv9C40LvQuNGA0YPQudGC0LUg0L3QsNGC0LjQstC90YvQtSBDINC/0YDQvtCz0YDQsNC80LzRiyAzMDM8YnI+OC42LjIg0JTQu9GPINGB0YLRgNGD0LrRgtGD0YDRiyDRhtC40YDQutGD0LvQuNGA0YPRjtGJ0LXQuSDQstC10YLQstC4IDMwNTxicj44LjYuMyDQn9GA0Lgg0YbQuNGA0LrRg9C70LjRgNGD0Y7RidC10Lkg0YHRgtGA0YPQutGC0YPRgNC1INCy0LXRgtCy0LggMzA5PGJyPjguNi40INCV0YHQu9C4JmFtcDtoZWxsaXA7JmFtcDtIZWxsaXA7PGJyPjguNi41INCh0YLRgNGD0LrRgtGD0YDQsCDRhtC40YDQutGD0LvQuNGA0YPRjtGJ0LXQuSDQstC10YLQstC4IDMxNjxicj44LjYuNiDQntC/0YLQuNC80LjQt9C40YDQvtCy0LDQvdC90LDRjyDQv9GA0L7Qs9GA0LDQvNC80LAgQyAzMTk8YnI+OC43INCd0LDRgtC40LLQvdCw0Y8g0L/RgNC+0LPRgNCw0LzQvNCwIEMg0J/RgNC+0LPRgNCw0LzQvNCwINC+0LHRgNCw0YLQvdGL0Lkg0LDQvdCw0LvQuNC3IDMyMTxicj44LjcuMSDQntCx0YDQsNGC0L3Ri9C5INCw0L3QsNC70LjQtyBDIFNUTCAzMjI8YnI+OC43LjIg0J7QsdGA0LDRgtC90YvQuSDQsNC90LDQu9C40Lcg0LrQu9Cw0YHRgdCwIEMgMzI2PGJyPjguNy4zIFJUVEkgMzMyINC/0YDQvtCz0YDQsNC80LzRiyBDPGJyPjguOCDQndCw0YLQuNCy0L3Ri9C1LCDRgtCw0Log0LTQuNC90LDQvNC40YfQtdGB0LrQuNC1INCx0LjQsdC70LjQvtGC0LXQutC4LCDQvtCx0YDQsNGC0L3Ri9C5INCw0L3QsNC70LjQtyAzMzY8YnI+OC45INCt0YLQsCDQs9C70LDQstCwIC0g0YHQsNC80LzQuNGCIDMzNzxicj48YnI+0JPQu9Cw0LLQsCA5INCd0LDRgtC40LLQvdCw0Y8g0L/RgNC+0LPRgNCw0LzQvNCwIEFuZHJvaWQg0JTQuNC90LDQvNC40YfQtdGB0LrQsNGPINC+0YLQu9Cw0LTQutCwPGJyPjkuMSDQvtGC0LvQsNC00YfQuNC6IEdEQiAzMzg8YnI+OS4xLjEg0KHRhtC10L3QsNGA0LjQuSBOREstR0RCIDMzODxicj45LjEuMiDQndCw0YHRgtGA0L7QudC60LAg0L7RgtC70LDQtNGH0LjQutCwIEdEQiAzMzk8YnI+OS4xLjMg0J7QsdGJ0LjQtSDQutC+0LzQsNC90LTRiyDQvtGC0LvQsNC00YfQuNC60LAgR0RCIDM0MDxicj45LjEuNCDQmNGB0L/QvtC70YzQt9GD0LnRgtC1IEdEQiDQtNC70Y8g0L7RgtC70LDQtNC60Lgg0L3QsNGC0LjQstC90YvRhSDQv9GA0L7Qs9GA0LDQvNC8IEFuZHJvaWQgMzQyPGJyPjkuMS41INCk0YDQvtC90YIgLdC60L7QvdGG0L7QvCBHREIg0L7RgtC70LDQtNGH0LjQutCwIDM0NDxicj45LjIgTExEQiDQvtGC0LvQsNC00YfQuNC6IDM0Njxicj45LjIuMSDQndCw0YHRgtGA0L7QudC60LAgTExEQiBEZWJ1Z2dlciAzNDY8YnI+OS4yLjIg0J7QsdGJ0LjQtSDQutC+0LzQsNC90LTRiyDQvtGC0LvQsNC00YfQuNC60LAgTExEQiAzNDg8YnI+OS4yLjMg0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSBMTERCINC00LvRjyDQvtGC0LvQsNC00LrQuCDQvdCw0YLQuNCy0L3Ri9GFINC/0YDQvtCz0YDQsNC80LwgQW5kcm9pZCAzNTA8YnI+OS4yLjQg0J/QtdGA0LXQtNC90LjQuSDQs9GA0LDRhNC40YfQtdGB0LrQuNC5INC40L3RgtC10YDRhNC10LnRgSDQvtGC0LvQsNC00YfQuNC60LAgTExEQiAzNTM8YnI+OS4zINCY0YHQv9C+0LvRjNC30YPQudGC0LUgSURBIFBybyDQtNC70Y8g0L7RgtC70LDQtNC60Lgg0L3QsNGC0LjQstC90YvRhSDQv9GA0L7Qs9GA0LDQvNC8IEFuZHJvaWQgMzUzPGJyPjkuNCDQoNC10LfRjtC80LUg0Y3RgtC+0Lkg0LPQu9Cw0LLRiyAzNTg8YnI+PGJyPtCT0LvQsNCy0LAgMTAg0JrRgNGO0Log0Lgg0LjQvdGK0LXQutGG0LjRjzxicj4xMC4xINCi0LjQvyDQutGA0Y7QutCwIDM1OTxicj4xMC4xLjEgRGFsdmlrIEhvb2sgMzU5PGJyPjEwLjEuMiBBcnQgSG9vayAzNjI8YnI+MTAuMS4zIExEX1BSRUxPQUQgSG9vayAzNjQ8YnI+MTAuMS40INCf0L7Qu9GD0YfQtdC9IEhvb2sgMzY2PGJyPjEwLjEuNSBJbmxpbmUgSG9vayAzNjc8YnI+MTAuMiDQmtGA0Y7QuiAt0LrQsNGA0LrQsNGBIHhwb3NlZCAzNjg8YnI+MTAuMyDQodGG0LXQvdCwINC4INC/0YDQuNC70L7QttC10L3QuNC1IEhvb2sgMzcyPGJyPjEwLjMuMSBPcGVuIExvZyBEZWJ1Z2luZyDQktGL0YXQvtC0IDM3Mjxicj4xMC4zLjIgQVBLIFBsdWcgLWluIDM3Mzxicj4xMC4zLjMg0J7QsdGF0L7QtCBTU0wgUGlubmluZyAzNzM8YnI+MTAuNCDQlNC40L3QsNC80LjRh9C10YHQutCw0Y8g0LjQvdGK0LXQutGG0LjRjyAzNzQ8YnI+MTAuNC4xINCi0LDQutC40Lwg0L7QsdGA0LDQt9C+0Lwg0LTQuNC90LDQvNC40YfQtdGB0LrQsNGPINC40L3RitC10LrRhtC40Y8g0LHQuNCx0LvQuNC+0YLQtdC60LggMzc0PGJyPjEwLjQuMiBEZXggSW5qZWN0IDM3Njxicj4xMC41INC40L3RitC10LrRhtC40L7QvdC90LDRjyDRgNCw0LzQutCwIEZyaWRhIDM3Nzxicj4xMC41LjEg0KPRgdGC0LDQvdC+0LLQutCwINC4INC60L7QvdGE0LjQs9GD0YDQsNGG0LjRjyBGUklEQSAzNzc8YnI+MTAuNS4yINCS0YvQv9C+0LvQvdC40YLQtSDQuNC90YrQtdC60YbQuNGOINC4INC60YDRjtGH0LrQvtC8IDM3ODxicj4xMC41LjMg0J7RgtGB0LvQtdC20LjQstCw0L3QuNC1INC90LDRgtC40LLQvdC+0LPQviDQvNC10YLQvtC00LAgMzg0PGJyPjEwLjYg0K3RgtCwINCz0LvQsNCy0LAgLSDRgdCw0LzQvNC40YIgMzg2PGJyPjxicj7Qk9C70LDQstCwIDExINCi0LXRhdC90L7Qu9C+0LPQuNGPINC30LDRidC40YLRiyDQv9GA0L7Qs9GA0LDQvNC80L3QvtCz0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjzxicj4xMS4xINCi0LXRhdC90L7Qu9C+0LPQuNGPINC30LDRidC40YLRiyDQv9GA0L7Qs9GA0LDQvNC80L3QvtCz0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjyDQktCy0LXQtNC10L3QuNC1IDM4Nzxicj4xMS4yINCi0LXRhdC90L7Qu9C+0LPQuNGPINC/0YPRgtCw0L3QuNGG0Ysg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y8gMzg4PGJyPjExLjIuMSDQodGC0YPRiNC10L3QuNC1INC40YHRhdC+0LTQvdC+0LPQviDQutC+0LTQsCAzODk8YnI+MTEuMi4yINCo0LDQsdC70L7QvSDQodC80YPRgiAzODk8YnI+MTEuMi4zIEFTVCDQv9GD0YLQsNC90LjRhtCwIDM5MTxicj4xMS4yLjQgSVIg0L/Rg9GC0LDQvdC40YbQsCAzOTc8YnI+MTEuMi41IERFWCBDT05GSUNUIDM5Nzxicj4xMS4yLjYgREVYINCy0YLQvtGA0LjRh9C90LDRjyDQv9GD0YLQsNC90LjRhtCwIDM5OTxicj4xMS4zINCX0LDRidC40YLQsCDQvtGCINGA0LXRgdGD0YDRgdC+0LIgNDAxPGJyPjExLjQg0J/RgNC+0LLQtdGA0LrQsCDQuNC90YLQtdCz0YDQsNGG0LjQuCA0MDM8YnI+MTEuNSDQkNC90YLQuNGG0LXRhtC60LDRjyDRgtC10YXQvdC+0LvQvtCz0LjRjyA0MDQ8YnI+MTEuNS4xINCe0LHQvdCw0YDRg9C20LXQvdC40LUg0YHQvtGB0YLQvtGP0L3QuNGPINC00LXRgtC10LrRgtC+0YDQsCA0MDQ8YnI+MTEuNS4yINCe0LHQvdCw0YDRg9C20LXQvdC40LUg0L/QvtGA0YLQsCDQtNC10YLQtdC60YLQvtGA0LAgNDA0PGJyPjExLjUuMyDQntCx0L3QsNGA0YPQttC10L3QuNC1INGB0L7RgdGC0L7Rj9C90LjRjyDQv9GA0L7RhtC10YHRgdCwIDQwNjxicj4xMS42INCe0LHQvdCw0YDRg9C20LXQvdC40LUg0L7Qv9C10YDQsNGG0LjQvtC90L3QvtC5INGB0YDQtdC00YsgNDA3PGJyPjExLjYuMSDQntCx0L3QsNGA0YPQttC10L3QuNC1INGB0LjQvNGD0LvRj9GC0L7RgNCwIDQwNzxicj4xMS42LjIg0J7QsdC90LDRgNGD0LbQtdC90LjQtSDQutC+0YDQvdC10LkgNDA5PGJyPjExLjYuMyDQotC10YHRgiDQutGA0Y7QutCwIDQwOTxicj4xMS43INCg0LXQt9GO0LzQtSDRjdGC0L7QuSDQs9C70LDQstGLIDQxMTxicj48YnI+0JPQu9Cw0LLQsCAxMiBTb2Z0d2FyZSBTaGVsbDxicj4xMi4xIEFuZHJvaWQgU29mdHdhcmUgU2hlbGwgNDEyPGJyPjEyLjIg0KXQsNGA0LDQutGC0LXRgNC40YHRgtC40LrQuCDQuCDRgNCw0LfQstC10LTQutCwIDQxMyDQv9GA0L7Qs9GA0LDQvNC80L3QvtCz0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjyA0MTM8YnI+MTIuMi4xINCa0L7QvNC/0LjQu9GP0YLQvtGAINC+0YLQv9C10YfQsNGC0L7QuiDQv9Cw0LvRjNGG0LAgNDEzPGJyPjEyLjIuMiDQpNGD0L3QutGG0LjQuCDQv9GA0L7Qs9GA0LDQvNC80L3QvtCz0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjyA0MTY8YnI+MTIuMi4zINCY0L3RgdGC0YDRg9C80LXQvdGCINC/0YDQvtCy0LXRgNC60Lgg0L7QsdC+0LvQvtGH0LrQuCA0MTg8YnI+MTIuMyDQlNC40L3QsNC80LjRh9C10YHQutCw0Y8g0L3QsNCz0YDRg9C30L7Rh9C90LDRjyDQvtCx0L7Qu9C+0YfQutCwIDQxODxicj4xMi4zLjEg0JzQtdGC0L7QtCDQvtCx0YHRgtGA0LXQu9CwINC60LXRiNCwIDQxODxicj4xMi4zLjIg0JzQtdGC0L7QtCDQvtCx0YHRgtGA0LXQu9CwINC00LDQvNC/0LAg0L/QsNC80Y/RgtC4IDQxOTxicj4xMi4zLjMg0JTQuNC90LDQvNC40YfQtdGB0LrQsNGPINC+0YLQu9Cw0LTQutCwINC80LXRgtC+0LTQsCDQvtCx0YHRgtGA0LXQu9CwIDQyMDxicj4xMi4zLjQg0JzQtdGC0L7QtCDQvtCx0YHRgtGA0LXQu9CwINC60YDRjtC60LAgNDIzPGJyPjEyLjMuNSDQnNC10YLQvtC0INC+0LHRgdGC0YDQtdC70LAg0YHQuNGB0YLQtdC80YsgNDI0PGJyPjEyLjQg0JrQvtC00L7QstCw0Y8g0L7QsdC+0LvQvtGH0LrQsCA0MjU8YnI+MTIuNC4xINCc0LXRgtC+0LQg0L7QsdGB0YLRgNC10LvQsCDQv9Cw0LzRj9GC0Lg8aW1nIGNsYXNzPSJkZXNjX2FuY2hvciIgaWQ9ImRlc2MtbW9kdWxlLTMiIHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9raXNzeS8xLjAuMC9idWlsZC9pbWdsYXp5bG9hZC9zcGFjZWJhbGwuZ2lmIj4uLi4uLi48aW1nIGNsYXNzPSJkZXNjX2FuY2hvciIgaWQ9ImRlc2MtbW9kdWxlLTQiIHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9raXNzeS8xLjAuMC9idWlsZC9pbWdsYXp5bG9hZC9zcGFjZWJhbGwuZ2lmIj7QrdGC0LAg0LrQvdC40LPQsCDQsiDQvtGB0L3QvtCy0L3QvtC8INC/0YDQtdC00YHRgtCw0LLQu9GP0LXRgiDRgtC10YXQvdC+0LvQvtCz0LjQuCDQsdC10LfQvtC/0LDRgdC90L7RgdGC0Lgg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y8g0L3QsCDQv9C70LDRgtGE0L7RgNC80LUgQW5kcm9pZC7QndCw0YfQuNC90LDRjyDRgSDRhNC+0L3QtNCwINC/0L7RgdGC0YDQvtC10L3QuNGPINC/0LvQsNGC0YTQvtGA0LzRiyDQuCDRj9C30YvQutCwLCDQvtC9INC/0L7RgdGC0LXQv9C10L3QvdC+INC+0LHRitGP0YHQvdC40Lsg0L/RgNC+0LPRgNCw0LzQvNC90YPRjiDQsNGC0LDQutGD0Y7RidGD0Y4g0Lgg0L7QsdC+0YDQvtC90LjRgtC10LvRjNC90YPRjiDRgtC10YXQvdC+0LvQvtCz0LjRjiDQvdCwINC/0LvQsNGC0YTQvtGA0LzQtSBBbmRyb2lkLtCSINGN0YLQvtC5INC60L3QuNCz0LUg0LXRgdGC0YwgMTIg0LPQu9Cw0LIsINC60L7RgtC+0YDRi9C1INGB0LjRgdGC0LXQvNCw0YLQuNGH0LXRgdC60Lgg0L7QsdGK0Y/RgdC90Y/RjtGCINC60L7QvdGB0YLRgNGD0LrRhtC40Y4g0L7QutGA0YPQttCw0Y7RidC10Lkg0YHRgNC10LTRiywg0YTQvtGA0LzQsNGCINGE0LDQudC70L7Qsiwg0YHRgtCw0YLQuNGH0LXRgdC60LjQuSDQsNC90LDQu9C40LcsINC00LjQvdCw0LzQuNGH0LXRgdC60LDRjyDQvtGC0LvQsNC00LrQsCwg0YLQtdGF0L3QvtC70L7Qs9C40Y8g0LfQsNGJ0LjRgtGLINC60YDRjtGH0LrQvtCyINC4INC/0YDQvtCz0YDQsNC80LzQvdC+0LPQviDQvtCx0LXRgdC/0LXRh9C10L3QuNGPLCDQvtCx0L7Qu9C+0YfQutC4INC/0YDQvtCz0YDQsNC80LzQvdC+0LPQviDQvtCx0LXRgdC/0LXRh9C10L3QuNGPLCDRgtCw0LrQuNC1INC60LDQuiDRhNC+0YDQvNCw0YLRiyDRhNCw0LnQu9C+0LIsINGB0YLQsNGC0LjRh9C10YHQutC40Lkg0LDQvdCw0LvQuNC3LCDQtNC40L3QsNC80LjRh9C10YHQutCw0Y8g0L7RgtC70LDQtNC60LAsINC60YDRjtGH0LrQvtCy0YvQtSDQuCDQv9GA0L7Qs9GA0LDQvNC80L3Ri9C1INC+0LHQvtC70L7Rh9C60LgsINGB0LLRj9C30LDQvdC90YvQtSDRgSBBbmRyb2lkIFNvZnR3YXJlIFNlY3VyaXR5LtCt0YLQsCDQutC90LjQs9CwINC40LzQtdC10YIg0LHQvtC70YzRiNC10LUg0L7QsdC90L7QstC70LXQvdC40LUg0L/QviDRgdGA0LDQstC90LXQvdC40Y4g0YEg0L/QtdGA0LLRi9C8INC40LfQtNCw0L3QuNC10Lwu0JrRgNC+0LzQtSDRgtC+0LPQviwg0Y3RgtCwINC60L3QuNCz0LAg0L7QsdC90L7QstC70Y/QtdGCINGB0YLRgNGD0LrRgtGD0YDRgyDQutCw0YLQsNC70L7Qs9C+0LIsINC+0LHRitGP0YHQvdGP0Y8g0YLQtdGF0L3QvtC70L7Qs9C40Y4g0LHQtdC30L7Qv9Cw0YHQvdC+0YHRgtC4INC/0YDQvtCz0YDQsNC80LzQvdC+0LPQviDQvtCx0LXRgdC/0LXRh9C10L3QuNGPIEphdmEg0Lgg0L3QsNGC0LjQstC90YvRhSDRgdC70L7QtdCyLCDQuCDQvtC90LAg0LHQvtC70LXQtSDQv9C+0LTRgNC+0LHQvdC+INC4INGA0LDQt9GD0LzQvdC+INCyINGA0LDRgdC/0L7Qu9C+0LbQtdC90LjQuCDQutC+0L3RgtC10L3RgtCwLtCSINGC0L4g0LbQtSDQstGA0LXQvNGPINC/0L7Qv9GD0LvRj9GA0L3Ri9C1INCz0LvQsNCy0Ysg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y8g0LTQvtCx0LDQstC70Y/RjtGC0YHRjyDQsiDQvdCw0YHRgtC+0Y/RidC10LUg0LLRgNC10LzRjywg0LHQvtC70YzRiNC40L3RgdGC0LLQviDQuNC3INC60L7RgtC+0YDRi9GFINGP0LLQu9GP0Y7RgtGB0Y8g0YLQtdGF0L3QvtC70L7Qs9C40Y/QvNC4LCDQutC+0YLQvtGA0YvQtSDQtdGJ0LUg0L3QtSDQsdGL0LvQuCDRgNCw0YHQutGA0YvRgtGLLtCa0YDQvtC80LUg0YLQvtCz0L4sINC60LDQttC00LDRjyDQs9C70LDQstCwINCyINC60L3QuNCz0LUg0L7QsdGK0Y/RgdC90Y/QtdGC0YHRjyDQsiDQv9GA0LjQvNC10YDQtSDQvtCx0YrRj9GB0L3QtdC90LjRjywg0LrQvtGC0L7RgNC+0LUg0Y/QstC70Y/QtdGC0YHRjyDQsdC+0LvQtdC1INC/0YDQsNC60YLQuNGH0L3Ri9C8LjxpbWcgY2xhc3M9ImRlc2NfYW5jaG9yIiBpZD0iZGVzYy1tb2R1bGUtNSIgc3JjPSJodHRwczovL2Fzc2V0cy5hbGljZG4uY29tL2tpc3N5LzEuMC4wL2J1aWxkL2ltZ2xhenlsb2FkL3NwYWNlYmFsbC5naWYiPi4uLi4uLjxpbWcgY2xhc3M9ImRlc2NfYW5jaG9yIiBpZD0iZGVzYy1tb2R1bGUtNiIgc3JjPSJodHRwczovL2Fzc2V0cy5hbGljZG4uY29tL2tpc3N5LzEuMC4wL2J1aWxkL2ltZ2xhenlsb2FkL3NwYWNlYmFsbC5naWYiPtC40LzRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8mcXVvdDvQndCV0J/QntCg0K/QndCd0KvQmSZhbXA7UmRxdW870KEgMjAwOCDQs9C+0LTQsCDQvNC90L7Qs9C40LUg0YLQtdGF0L3QuNGH0LXRgdC60LjQtSDRgdGC0LDRgtGM0Lgg0LHRi9C70Lgg0L7Qv9GD0LHQu9C40LrQvtCy0LDQvdGLINCyINGF0L7RgNC+0YjQviDQuNC30LLQtdGB0YLQvdC+0Lwg0LbRg9GA0L3QsNC70LUg0LHQtdC30L7Qv9Cw0YHQvdC+0YHRgtC4ICJIYWNrZXIgRGVmZW5zZSIuPC9wPg==
Продавец:当当网官方旗舰店
Рейтинг:

Всего отзывов:0
Положительных:0
Добавить в корзину
- Информация о товаре
- Фотографии
Разработка программного обеспечения Android, обратный анализ и динамическая отладка в Windows, Linux, MacOS
Следуйте обратному анализу сборки ARM, крючка, защиты программного обеспечения, программного обеспечения и Java Layer и The Native Layer
Систематические команды и инструменты введение, шаг -штипные учебные маршруты и яркие сценарии приложений, указывающие на руки -на практике
Основная информация
| Название продукта: | Авторитетное руководство по безопасности программного обеспечения Android | формат: | 16 |
| Автор: | Fengshengqiang | Цены: | 95.00 |
| Номер ISBN: | 9787121355202 | Время публикации: | 2019-03-01 |
| Издательство: | Электронная промышленная пресса | Время печати: | 2019-03-01 |
| Издание: | 1 | Время печати: | 1 |
1.1 Создание среды анализа Windows 1
1.1.1 Установить JDK 1
1.1.2 Установить Android SDK 2
1.1.3 Установите Android NDK 5
1.1.4 Android Studio Интегрированная среда разработки 6
1.1.5 Создать Android Simulator 7
1.1.6 Cygwin 9
1.1.7 Bash на Ubuntu на Windows 11
1.2 Построить среду анализа macOS 12
1.2.1 Установить JDK 12
1.2.2 Установите Android SDK 14
1.2.3 Установите Android NDK 14
1.2.4 Android Studio Интегрированная среда разработки 15
1.3 Строительная среда анализа Ubuntu 15
1.3.1 Установить JDK 16
1.3.2 Установите Android SDK 17
1.3.3 Установите Android NDK 17
1.3.4 Android Studio Интегрированная среда разработки 18
1.4 Общий инструмент обратного анализа 19
1,5 Обычная команда Linux Shell 19
1.6 Среда анализа источника строительства 20
1.6.1 Компилирование исходного кода Android в MacOS 20
1.6.2 Компилирование исходного кода Android в Ubuntu 26
1.6.3 Компилирование исходного кода Android 26 в Windows
1.7 Резюме этой главы 27
Глава 2 Как проанализировать программу Android
2.1 Напишите*программа Android 28
2.1.1 Создание Android Project 28
2.1.2 Компилируйте и генерируйте файл APK 30
2.2 Crack*Android -программа 35
2.2.1 Crack и начните с 35
2.2.2 Анти -компиляционный файл APK 35
2.2.3 Анализ APK -файл 36
2.2.4 Измените код файла Smali 44
2.2.5 re -compile файл APK и знак 45
2.2.6 Установка и тест 47
2.2.7 Резюме 48
2.3 Резюме этой главы 48
Глава 3 Далвик исполняемый формат и спецификация байт -кодов
3.1 Dalvik Virtual Machine 49
3.1.1 Dalvik Virtual Machine имеет 49
3.1.2 Darvik Virtual Machine и Java Virtual Machine 49
3.1.3 Процесс выполнения виртуальной машины 54
3.1.4 Метод выполнения виртуальной машины 56
3.2 Dalvik Language Base 56
3.2.1 Формат инструкции Dalvik 57
3.2.2 Инструмент компиляции Dex Capital 58
3.2.3 Dalvik Register 59
3.2.4 Метод именования регистрации 61
3.2.5 Dalvik Bytecode 62
3.3 Набор инструкций Dalvik 63
3.3.1 Тип инструкции 64
3.3.2 Инструкции по эксплуатации воздуха 64
3.3.3 Инструкции по работе с данными 64
3.3.4 Инструкция возврата 65
3.3.5 Инструкция по определению данных 65
3.3.6 Инструкция блокировки 66
3.3.7 Пример инструкции по эксплуатации 66
3.3.8 Инструкция по эксплуатации массива 66
3.3.9 Инструкции ODX 67
3.3.10
3.3.11 Инструкция сравнения 68
3.3.12 Инструкции по эксплуатации поля 69
3.3.13 Метод Инструкция по вызову 69
3.3.14 Инструкция по преобразованию данных 70
3.3.15 Инструкция по вычислению данных 70
3.4 Dalvik Инструкция упражнения 71
3.4.1 Записать Smali File 71
3.4.2 Скомпилируйте Smali File 73
3.4.3
3.5 Сводка этой главы 73
Глава 4 Общий формат файлов Android
4.1 Файл библиотеки 74
4.1.1 Jar Package 74
4.1.2 AAR PACK 75
4.2 APK 78
4.2.1 Структура файла APK 78
4.2.2 Процесс генерации файла APK 79
4.2.3 Процесс установки APK 84
4.3 Classes.dex 90
4.3.1 DEX Структура файла 90
4.3.2 Проверка и оптимизация файла DEX 104
4.3.3 Модификация файла DEX 108
4.3.4 Multidex 111
4.4 Androidmanifest.xml 113
4.4.1 Формат файла AndroidManifest.xml 113
4.4.2 Формат файла axml 114
4.4.3 Модификация файла AXML 121
4.5 Ресурсы. ARSC 121
4.5.1 Формат файла ARSC 122
4.5.2 Модификация файла ARSC 128
4.6 Мета-каталог 128
4.6.1 cert.rsa 128
4.6.2 Manifest.mf 129
4.6.3 cert.sf 130
4.7 ODEX 132
4.7.1 Сгенерировать файл odex 132
4.7.2 Формат файла ODEX 132
4.7.3 Конвертировать файл ODEX в файл DEX 136
4.8 OAT 137
4.8.1 Art Virtual Machine 137
4.8.2 Сгенерировать овсяный файл 137
4.8.3 Формат овсяного файла 138
4.8.4 Конвертировать файл овса в файл DEX 141
4.9 Сводка этой главы 143
Глава 5 Статический анализ Android Программа
5.1 Статический анализ Введение 145
5.2 Чтение кода Smali 145
5.2.1 Структура файла Smali 145
5.2.2 Европейское предложение 148
5.2.3 Переключение ветви. Предложение 153
5.2.4. Попробуйте/Поймайте заявление 158
5.3 Читать код Java 163
5.3.1 Конвертировать файл DEX в пакет JAR 163
5.3.2 Инструмент анализа JAR 163
5.4 Техника позиционирования кода 164
5.4.1 Метод анализа входа 164
5.4.2 Метод обратной связи с информацией 165
5.4.3 Метод функции функции 165
5.5 Используйте JEB для статического анализа 165
5.5.1 Установить JEB 165
5.5.2 Статическое анализ Функция JEB 166
5.5.3 Сценарий Джеба и плагин -IN 169
5.6 Используйте IDA Pro для статического анализа 170
5.6.1 Поддержка IDA Pro для Android 170
5.6.2 Анализ файл DEX 170
5.6.3 Код позиционирования 172
5.7 Используйте Androguard для статического анализа 174
5.7.1 Установить Androguard 175
5.7.2 Как использовать Androguard 175
5.7.3 Используйте androlyze.py для анализа 179
5.8 Резюме этой главы 182
Глава 6 Динамический анализ Android программы
6.1 Динамическая структура анализа 183
6.2 Навыки динамического анализа 189
6.2.1 Метод инъекции кода 189
6.2.2 Метод стека 192
6.2.3 Профилирование метода 193
6.2.4 Проверка пользовательского интерфейса 196
6.3 Используйте JDB Dynamic Debug APK 198
6.4 Используйте JEB Dynamic Debug APK 200
6.5 Используйте IDA Pro Dynamical Devug APK 201
6.6 Резюме этой главы 203
Глава 7 Основная компиляция ARM
7.1 Android и Arm Processor 204
7.1.1 Обзор архитектуры процессора ARM 204
7.1.2 Архитектура процессора, поддерживаемая Android 205
7.2 Android Arm Eabi 206
7.2.1 Armeabi 206
7.2.2 Armeabi-V7a 207
7.2.3 ARM64-V8A 208
7.3. Генерация генерации нативной программы ARM 208
7.3.1 Предварительная обработка 210
7.3.2 Компилирование 211
7.3.3 Сборка 215
7.3.4 Ссылка 215
7.4 Язык Ассамблеи 216
7.4.1 Структура программы сборки ARM 216
7.4.2 Инструкции по сборке 221
7.4.3 Регистрация 223
7.4.4 Метод обращения процессора 224
7.4.5. ПРОВЕРКА ПАРАМЕТРА 227 Подпрограммы 227
7.5 Набор инструкций по сборке рук 230
7.5.1 Классификация набора инструкций ARM 230
7.5.2 Кодировка инструкции 231
7.5.3 Анализ формата инструкции ARM 233
7.5.4.
7.6 Набор инструкций по компиляции большого пальца 240
7.6.1 16 -битная инструкция кодирует 240
7.6.2 16 -битный анализ инструкций 241
7.6.3 32 -bit pliging Инструкция, кодирующая 242
7.6.4 32 -bit phin thumb АНАЛИЗ Формата 244
7.7 AARCH64 Сбор команд компиляции 246
7.7.1 Aarch64 Инструкция, кодирующая 246
7.7.2 Aarch64 Анализ формата инструкций 247
7.8 Резюме этой главы 250
Глава 8 Разработка программы Android и обратный анализ Android
8.1 Разработка нативной программы 251
8.1.1 Native Program Engineering 252
8.1.2 STL Choice 253
8.1.3 JNI 254
8.1.4 Параметры компиляции и элементы конфигурации 256
8.2 Трансплантация нативной программы 256
8.2.1 Трансплантация проекта ADT 257
8.2.2 Трансплантация проекта с открытым исходным кодом 258
8.2.3 Трансплантация проекта CMAKE 262
8.2.4 Трансплантация других типов проектов 264
8.3 Функция входа нативного программы 264
8.3.1 Анализ функций ввода программы 264
8.3.2 Таким образом, анализ функций входа 269
8.4 Формат нативного программы 271
8.4.1 Типы файлов нативных программ 271
8.4.2 Aarch64 File File Format 274
8.4.3 Заголовок программы Таблица 278
8.4.4 Заголовок раздела Таблица 281
8.4.5.dynamic Раздел 283
8.4.6 Строка Таблица 285
8.4.7 Символ Таблица 286
8.4.8 Полученная таблица и таблица PLT 287
8.4.9 Реконструкция адреса Таблица 291
8.5 Инструмент обратного анализа нативной программы 295
8.5.1 NDK Toolchain 295
8.5.2 IDA Pro 297
8.5.3 Хоппер 301
8.6 Нативная программа C Программа обратный анализ 302
8.6.1 Компилируйте нативные C программы 303
8.6.2 Для структуры циркулирующей ветви 305
8.6.3 При циркулирующей структуре ветви 309
8.6.4 Если…&Hellip;
8.6.5 Структура циркулирующей ветви 316
8.6.6 Оптимизированная программа C 319
8.7 Нативная программа C Программа обратный анализ 321
8.7.1 Обратный анализ C STL 322
8.7.2 Обратный анализ класса C 326
8.7.3 RTTI 332 программы C
8.8 Нативные, так динамические библиотеки, обратный анализ 336
8.9 Эта глава - саммит 337
Глава 9 Нативная программа Android Динамическая отладка
9.1 отладчик GDB 338
9.1.1 Сценарий NDK-GDB 338
9.1.2 Настройка отладчика GDB 339
9.1.3 Общие команды отладчика GDB 340
9.1.4 Используйте GDB для отладки нативных программ Android 342
9.1.5 Фронт -концом GDB отладчика 344
9.2 LLDB отладчик 346
9.2.1 Настройка LLDB Debugger 346
9.2.2 Общие команды отладчика LLDB 348
9.2.3 Используйте LLDB для отладки нативных программ Android 350
9.2.4 Передний графический интерфейс отладчика LLDB 353
9.3 Используйте IDA Pro для отладки нативных программ Android 353
9.4 Резюме этой главы 358
Глава 10 Крюк и инъекция
10.1 Тип крюка 359
10.1.1 Dalvik Hook 359
10.1.2 Art Hook 362
10.1.3 LD_PRELOAD Hook 364
10.1.4 Получен Hook 366
10.1.5 Inline Hook 367
10.2 Крюк -каркас xposed 368
10.3 Сцена и приложение Hook 372
10.3.1 Open Log Debuging Выход 372
10.3.2 APK Plug -in 373
10.3.3 Обход SSL Pinning 373
10.4 Динамическая инъекция 374
10.4.1 Таким образом динамическая инъекция библиотеки 374
10.4.2 Dex Inject 376
10.5 инъекционная рамка Frida 377
10.5.1 Установка и конфигурация FRIDA 377
10.5.2 Выполните инъекцию и крючком 378
10.5.3 Отслеживание нативного метода 384
10.6 Эта глава - саммит 386
Глава 11 Технология защиты программного обеспечения
11.1 Технология защиты программного обеспечения Введение 387
11.2 Технология путаницы программного обеспечения 388
11.2.1 Стушение исходного кода 389
11.2.2 Шаблон Смут 389
11.2.3 AST путаница 391
11.2.4 IR путаница 397
11.2.5 DEX CONFICT 397
11.2.6 DEX вторичная путаница 399
11.3 Защита от ресурсов 401
11.4 Проверка интеграции 403
11.5 Антицецкая технология 404
11.5.1 Обнаружение состояния детектора 404
11.5.2 Обнаружение порта детектора 404
11.5.3 Обнаружение состояния процесса 406
11.6 Обнаружение операционной среды 407
11.6.1 Обнаружение симулятора 407
11.6.2 Обнаружение корней 409
11.6.3 Тест крюка 409
11.7 Резюме этой главы 411
Глава 12 Software Shell
12.1 Android Software Shell 412
12.2 Характеристики и разведка 413 программного обеспечения 413
12.2.1 Компилятор отпечаток пальца 413
12.2.2 Функции программного обеспечения 416
12.2.3 Инструмент проверки оболочки 418
12.3 Динамическая нагрузочная оболочка 418
12.3.1 Метод обстрела кеша 418
12.3.2 Метод обстрела дампа памяти 419
12.3.3 Динамическая отладка метода обстрела 420
12.3.4 Метод обстрела крюка 423
12.3.5 Метод обстрела системы 424
12.4 Кодовая оболочка 425
12.4.1 Метод обстрела памяти
......
Эта книга в основном представляет технологии безопасности программного обеспечения на платформе Android.Начиная с фонда построения платформы и языка, он постепенно объяснил программную атакующую и оборонительную технологию на платформе Android.В этой книге есть 12 глав, которые систематически объясняют конструкцию окружающей среды, формат файлов, статический анализ, динамическая отладка, технология защиты крючков и программного обеспечения, оболочки программного обеспечения, такие как форматы файлов, статический анализ, динамическая отладка, крючковые и программные оболочки, связанные с Android Software Security.Эта книга имеет большее обновление по сравнению с первым изданием.Кроме того, эта книга обновляет структуру каталогов, объясняя технологию безопасности программного обеспечения Java и нативных слоев, и она более подробно и разумно в расположении контента.В то же время популярные главы программного обеспечения добавляются в настоящее время, большинство из которых являются технологиями, которые еще не были раскрыты.Кроме того, каждая глава в книге объясняется в примере объяснения, которое является более практичным.
......
имя пользователя"НЕПОРЯННЫЙ&Rdquo;С 2008 года многие технические статьи были опубликованы в хорошо известном журнале безопасности "Hacker Defense".

