Сейчас на форуме: -Sanchez- (+7 невидимых)

 eXeL@B —› Основной форум —› Взлом Android приложений
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 38 . 39 . >>
Посл.ответ Сообщение

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 12 сентября 2011 12:37 · Поправил: SaNX
· Личное сообщение · #1

В теме обсуждаются вопросы взлома под андроид и соответствующие тулзы.
ТУТОРИАЛЫ:
--> Тутор от chelpa<--
--> От аффтора antilvl<--
--> дебаг .so<--

ТУЛЗЫ:
JEB
ApkAnalyser
--> Android Reverse Engineering (A.R.E.) <--
--> Apktool <--
--> Smali/baksmali <--
--> APKRecovery <--
--> Dex2Jar <--
--> APKInspector <--
--> Lucky Patcher 1.2.0 <--
--> Crack Assist 0.3 <--
--> ART <--
--> JD-GUI <--
--> DexInspector <--
--> Android unpacker <--
GikDbg


В аттаче fernflower, очень годный жава декомпилер.
0ece_06.12.2012_EXELAB.rU.tgz - fernflower.jar

-----
SaNX


| Сообщение посчитали полезным: 4kusNick, WmLiM, gsx3000, Maximus, CoolMax_86, Rustem, Oott, streit, t0ShA, BAHEK, sooqa, Ara, VodoleY, vden, Thegodofviruses, SDFnik, Soso, ff0h, RAMZEZzz, quency, XroM_N70, Alinator3500, Coderess, samtehnik, Isaev, dgyst, ALSSL, dosprog, omeh2003, d0wn, ELF_7719116, Bad_guy

Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 22 августа 2013 19:54 · Поправил: Apokrif
· Личное сообщение · #2

Опаньки. А похоже ссылки на
__ANDROID__
__CEARM__
__ARMLINUX__
Есть только в allmake.mak defaults.mk и makeopts.mk
Эти файлы используются только для компиляции на Windows.
На Linux используются *.unx

Да и make на Linux переменную __ANDROID__ не видит, и пытается компилить под __MAC__
# export __ANDROID__=1
# idamake.pl
make[1]: Entering directory '/root/idasdk/plugins'
make[2]: Entering directory '/root/idasdk/plugins/debugger'
g++ -g -D_DEBUG -D__MAC__ -fvisibility=hidden

# export __LINUX__=1
# idamake.pl
make[1]: Entering directory '/root/idasdk/plugins'
make[2]: Entering directory '/root/idasdk/plugins/debugger'
g++ -m32 -lrt -lpthread -D__LINUX__ -D_FORTIFY_SOURCE=0


Выходит, что для Android (Arm) можно скомпилить только на на Windows, на Linux не получится?
Или я опять конкретно не догоняю?

To mods:
Как разберемся, обещаю весь "мусор" стереть и оставить только пошаговые инструкции.
Хорошо, что у reversecode всё компилиться без проблем, надеюсь, что и у меня получиться!




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 августа 2013 20:02
· Личное сообщение · #3

файлы с расширением .mak используются во всех системах



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 22 августа 2013 20:26
· Личное сообщение · #4

>файлы с расширением .mak используются во всех системах
У меня используются .unx
(Интересно, а зачем .unx тогда в SDK?)
Кажется в readme.txt сказано:
.unx для gcc make
.mak для Borland make

Если переименовать makefile.unx в корне SDK, получится:
# mv makefile.unx makefile.unx_
# idamake.pl
/tmp/makefile.root.42829:2: "makeopts.mk": No such file or directory
make: *** No rule to make target '"makeopts.mk"'. Stop.
# mv makefile.unx_ makefile.unx
# idamake.pl
make[1]: Entering directory '/root/idasdk/plugins'
make[2]: Entering directory '/root/idasdk/plugins/debugger'


А у вас по другому получается?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 августа 2013 20:31
· Личное сообщение · #5

миль пардон я спутал mak с mk
да mak для борланда

да, у меня всегда все получается
man make
make -f имямейкфала



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 22 августа 2013 20:58
· Личное сообщение · #6

>да, у меня всегда все получается
Отлично. Значит в SDK 6.1 есть всё, что нужно для компиляции!

>man make
>make -f имямейкфала
Не понял... Это о чём?
idamake.pl, тоже самое и запускает, по сути.
Но как это должно помочь с вагоном "undefined reference-ов"?
Подумал, что не догоняю опять, запустил:
cd plugins/debugger
make -f makefile.unx

Все ошибки те же...

Чисто ради интереса, какого размера у вас получается android_server для 4.0.3 и для 4.2?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 августа 2013 21:03
· Личное сообщение · #7

я ранее говорил что под андроид не собирал
только под линукс



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 22 августа 2013 21:26 · Поправил: Apokrif
· Личное сообщение · #8

>только под линукс
Т.е. тоже, что я делаю сейчас.
Судя по предыдущим постам, вы собирали на Linux, а не на Windows?
А при линковке, что использовали libida.a (ida.a) или libida.so и откуда или ни то и ни другое?
И можно команду, которая у меня падает показать:
g++ -m32 -lrt -lpthread -D__LINUX__ -D_FORTIFY_SOURCE=0 -fvisibility=hidden -fvisibility-inlines-hidden --shared -Wl,--gc-sections -Wl,--no-undefined -o /root/idasdk/61/bin/plugins/linux_user.plx obj/x86_linux_gcc_32/linux_user.o32 obj/x86_linux_gcc_32/debmod.o32 obj/x86_linux_gcc_32/pc_debmod.o32 obj/x86_linux_gcc_32/linux_debmod.o32 obj/x86_linux_gcc_32/linux_wait.o32 obj/x86_linux_gcc_32/symelf.o32 -L/root/idasdk/61/bin/ -lida --version-script=linux_debmod.script -Wl,--export-dynamic -ldl -lthread_db
/usr/bin/ld: cannot find -lida
collect2: ld returned 1 exit status


Опять же судя по вашим ответам, фрагмента -lida у вас не было (убрали в allmake.unx?) и все слинковалось без проблем.
Я правильно понял?
Если не сложно, может под Android компильнёте?
Сдаётся мне, там (мне бы) понадобились libida.a или libida.so под Android, про которые вообще нигде упоминаний не было.
Если у вас и без этих либ всё работает, то это просто замечательно.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 августа 2013 21:39 · Поправил: reversecode
· Личное сообщение · #9

Apokrif пишет:
Судя по предыдущим постам, вы собирали на Linux, а не на Windows?

yes
Apokrif пишет:
при линковке, что использовали libida.a (ida.a) или libida.so и откуда или ни то и ни другое?

no
Apokrif пишет:
Опять же судя по вашим ответам, фрагмента -lida у вас не было (убрали в allmake.unx?) и все слинковалось без проблем.

уже не помню, я много чего там правил
и слинковалось без проблем
Apokrif пишет:
Сдаётся мне, там (мне бы) понадобились libida.a или libida.so под Android, про которые вообще нигде упоминаний не было.

в ida6.1 уже есть android_server
вы видите там в зависимостях libida.so ? правильно, значит и быть ее там не должно
Apokrif пишет:
Если не сложно, может под Android компильнёте?

1) сложно, надо ndk тянуть итд, накладно
2) а зачем? в комплекте ида уже есть андроид сервер
Apokrif пишет:
Если у вас и без этих либ всё работает, то это просто замечательно.

ну а как и наче? или вы адроид сервер будете заливать на андроид вместе с ядро ida ?
андроид сервер самостоятельная независимая программа



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 22 августа 2013 21:59 · Поправил: Apokrif
· Личное сообщение · #10

>>Опять же судя по вашим ответам, фрагмента -lida у вас не было (убрали в allmake.unx?) и все слинковалось без проблем.
>уже не помню, я много чего там правил
>и слинковалось без проблем
Так это самое главное и есть!
Киньте хоть make файлы, я сравню со своими?

>>Сдаётся мне, там (мне бы) понадобились libida.a или libida.so под Android, про которые вообще нигде упоминаний не было.
>в ida6.1 уже есть android_server
>вы видите там в зависимостях libida.so? правильно, значит и быть ее там не должно
>>Если не сложно, может под Android компильнёте?
>1) сложно, надо ndk тянуть итд, накладно
>2) а зачем? в комплекте ида уже есть андроид сервер
>Если у вас и без этих либ всё работает, то это просто замечательно.
>ну а как и наче? или вы адроид сервер будете заливать на андроид вместе с ядро ida ?
>андроид сервер самостоятельная независимая программа
Это я все прекрасно понимаю.
Либа упоминается в общем make файле, т.к. она м.б. нужна для других plugins.
Я компилю только linux_server (в готовом linux_server ссылок на *ida.so) тоже нет.
Но для "готового linux_server" могла быть использована *ida.a (что противоречит install_linux.txt)
Возможно, илфак компилил с *ida.a, а нам предлагает с *ida.so?

Т.е. единственный вопрос, что именно нужно сделать, что бы скомпилить linux_server на Linux.
Может вспомните и подскажете?
Или просто по новой сделайте, у вас же
reversecode пишет:
да, у меня всегда все получается





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 августа 2013 22:06
· Личное сообщение · #11

чудак человек! я уже и не помню на каком из серверов это собирал
той версии помоему уже и нет
к тому же у меня была цель смержить улучшения из idasdk6.4 и я мержил только линуксовые и постил в соответсвующей теме эти нафиг никому не нужные билды ,
а андроид версия меня не интересовала

ничего там не предпологается никаких .so
просто вдумчиво изучите все мейк файлы итд и увас получится!



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 22 августа 2013 22:35 · Поправил: Apokrif
· Личное сообщение · #12

>чудак человек! я уже и не помню на каком из серверов это собирал
>той версии помоему уже и нет
Извините, не понял.
Версии чего "уже и нет"?
Linux-а или IDA SDK?
Linux поднять можно за нескольких минут, развернуть IDA SDK еще быстрее?

>просто вдумчиво изучите все мейк файлы итд и у вас получится!
Опять не понял.
Make файлы там совсем простенькие.
Какой из них нужно "вдумчиво изучить" (и поправить)?
Ссылку на либу я убирал и получил как и ожидалось undefined references.
IMHO, надо разбираться с кодом, что там нужно и что нет.
И быстро и запросто это не получится (по моему опыту)
Или это была шутка и имелось ввиду:
Тщательно пройти по всем *.cpp в idasdk/plugins/debugger, разобраться и убрать всё ненужное?

Если вам это всё внапряг вспоминать, может просто посоветуете, у кого еще спросить (кроме илфака )?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 августа 2013 22:39 · Поправил: reversecode
· Личное сообщение · #13

патченой версии sdk уже нет)
тянуть ставить итд, это все накладно когда голова другим уже забита,
тогда у меня была цель, я ее минут за 20 разобрался пофиксил
если вы вдумчиво разбреетесь то тоже исправите, я уже реально не помню что там было не так
но правил я там и то и это и паралельно еще sdk64 пытался собрать, так что просто не упомню что именно там было неправильно

там что то тривиальное...

да, думаю еще когото можно спросить, надо их только подождать!))



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 22 августа 2013 23:01 · Поправил: Apokrif
· Личное сообщение · #14

>патченой версии sdk уже нет)
А она разве нужна для linux_server?

Хотел уточнить, компилили именно linux_server (linux_server x64) на каком-то Linux.
(RedHat, CentOS, Ubunty или что-то другое)
И какой SDK (может в 6.1 чего не хватает)?

>там что то тривиальное...
Угу, и чем проще тем быстрее забывается (это я про себя)

>да, думаю еще когото можно спросить, надо их только подождать!))
В какой теме лучше спросить?
Тут? --> Link <--
Суда как-то редко народ заглядывает…




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 августа 2013 23:07
· Личное сообщение · #15

патченой sdk версии idasdk6.1 имелось ввиду
я ее патчил(фиксил для себя)

linux_server x86 на убунте

Apokrif пишет:
В какой теме лучше спросить?

это была шутка, спрашивать почти неукого
а те кто и знают промолчат в силу своей скромности )

если бы вы целый день просидели не на форуме а над изучением ошибок и медитацией - наверняка бы уже скомпилили



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 22 августа 2013 23:16
· Личное сообщение · #16

>если бы вы целый день просидели не на форуме а над изучением ошибок и медитацией - наверняка бы уже скомпилили
У меня нету шаманского бубна. И в медитциях я тоже не силен.
Т.е. на "подсказки свыше" я не могу рассчитывать.
Make файлы там совсем простенькие.
Компилится всё без ошибок, только не линкуется.
В таком случае нужно перебирать файлы (*.cpp) и пытаться выбрасывать по одному, в надежде что он и не нужен вовсе.
Другого пути не вижу…




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 августа 2013 23:18 · Поправил: reversecode
· Личное сообщение · #17

/usr/bin/ld: cannot find -lida
collect2: ld returned 1 exit status

это что ли? и как же вы тогда его убирали с мейкфайла если оно все равно в линкере присутсвует ?



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 23 августа 2013 00:47
· Личное сообщение · #18

>это что ли? и как же вы тогда его убирали с мейкфайла если оно все равно в линкере присутсвует ?
В allmake.unx менял
#LINKIDA=-lida$(SUFF64)$(X64SUFF)
на
LINKIDA=

На предыдущей странице оба варианта --> Link <--




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 23 августа 2013 01:25 · Поправил: reversecode
· Личное сообщение · #19

# export __LINUX__=1
# export PATH=~/ida/idasdk61/bin:$PATH
# cd ~/ida/idasdk61/plugins/debugger/
# make linux_server -f makefile.unx
у меня все собрало

root@host:~/ida/idasdk61/plugins/debugger# ll ../../bin/linux_server
-rwxr-xr-x 1 root root 1897232 2013-08-22 23:56 ../../bin/linux_server

--> Link <--



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 23 августа 2013 01:36 · Поправил: Apokrif
· Личное сообщение · #20

Я всё тоже и самое делал.
Вот эту команду можете показать, какие либы она подключает (пост 8 на этой странице) --> Link <--
Похоже, у вас есть что-то, чего у меня нет...

А такой вариант у вас соберется?
export __LINUX__=1
export __ARM__=1
export PATH=~/ida/idasdk61/bin:$PATH
cd ~/ida/idasdk61/plugins/debugger/
make armlinux_server -f makefile.unx




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 23 августа 2013 01:41
· Личное сообщение · #21

выше линк на пастен бин оставил
конечно же не соберется, ибо нет андроидовского ндк как минимум
а максимум еще может с чем то калдовать нужно будет



Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 23 августа 2013 02:02 · Поправил: Apokrif
· Личное сообщение · #22

>выше линк на пастен бин оставил
>конечно же не соберется, ибо нет андроидовского ндк как минимум
>а максимум еще может с чем то калдовать нужно будет
Нет. Для "просто" armlinux_server Android NDK не нужен. (т.е. просто linux на arm, а не на x86/x64)
А нужен ~/ida/idasdk61/lib/arm_linux_gcc_32/dumb.o32
Он д.б. в IDA SDK именно для arm, но у меня его нет.
И либы "pro.a" тоже нет для arm...
В Android NDK этих файлов нет, они д.б. в IDA SDK.

Для Android нужно (примерно) и конечно Android NDK.
export __LINUX__=1
export __ARM__=1
export __ANDROID__=1

export PATH=~/ida/idasdk61/bin:$PATH
cd ~/ida/idasdk61/plugins/debugger/
make armlinux_server -f makefile.unx

* export __ANDROID__=1 не пройдет в g++, нужно править make файл.




Ранг: 2.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 октября 2013 01:50 · Поправил: dimzdrec33
· Личное сообщение · #23

--> AndroChef.Java.Decompiler.v1.0.0.5 <--



Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 02 ноября 2013 21:18
· Личное сообщение · #24

Поздравьте меня)) Я Титан с его DexGuard запатчил)) Задачка на 32 часа получилась)) Но я раскриптовал класс запатчил и обратно накрыл, чтобы патчить можно было установленный с маркета титан))

| Сообщение посчитали полезным: t0ShA

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 03 ноября 2013 08:05
· Личное сообщение · #25

chelpa
Круто Ждем подробностей.

-----
SaNX




Ранг: 171.0 (ветеран), 11thx
Активность: 0.050
Статус: Участник

Создано: 04 ноября 2013 09:27
· Личное сообщение · #26

chelpa пишет:
Но я раскриптовал класс запатчил и обратно накрыл
Я бы ожидал, что они своим же private/public key шифруют, заодно и прогу просто не переподпишешь - надо все вместе делать...
32 часа - очень круто - поздравляю!

SaNX пишет:
Ждем подробностей
Присоединяюсь!



Ранг: 6.4 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 04 ноября 2013 15:21 · Поправил: Модератор
· Личное сообщение · #27

подскажите пжлс, а запрос на взлом софта под андроид в этой ветке можно оставлять или в какую можно обратиться ?

От модератора: в ту же, где и всё остальное https://ssl.exelab.ru/f/action=vthread&forum=2&topic=21832&page=14 правила читай



Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 05 ноября 2013 14:23 · Поправил: chelpa
· Личное сообщение · #28

SaNX пишет:
Круто Ждем подробностей.

Ну прям на "подробности-подробности" времени мало расписывать. Заслуга понятное дело не полностью моя, был человек на 4pda с ником cha-cha, который этим делом летом занялся и разобрал нужную часть кода. Тогда он и кинул мне тулзу на JAVA, которая была способна раскриптовать блоки с классом при определённой подготовке. Он выяснил, что накрыты они AES/CFB/NoPadding. Ключ и IV лежат в коде. Это для первого куска. А вот когда этот кусок разворачивается в памяти, то из него достаются вторые ключ и IV для распаковки уже основной части, где уже сама проверка лицензии. Функция с тремя входящими int, которой пестрит вся часть накрытая DexGuard - это преобразование некоего массива в строки в зависимости от входящих параметров (тут расписано что к чему http://www.android-decompiler.com/blog/2013/04/02/a-look-inside-dexguard/). В общем, сейчас довольно много про DexGuard появилось, я признаться даже не знал, что это стандартной тулзой накрыто у них было, пока недавно на доки не натолкнулся (вот еще про DexGuard http://androidcracking.blogspot.ru/2013/10/nihilus-reversing-dexguard-5x.html).
32 часа я потратил из-за глупости своей, а не из-за сложности. Понимал бы я сразу что к чему, и имел бы побольше опыта в crypto алгоритмах, я бы сделал всё часа за два. А так море глупых ошибок стопорили меня сразу на много часов.
Проделал следующее:
1. изменил тулзу так, чтобы не набивать массивов байт, а считывать закриптованную часть из специально созданных файлов, нашел ключ и IV - они сразу над закриптованным массивом были, если смотреть из IDA.
2. Метод шифрования изменился в версии 6.1.1 (cha-cha разбирал 6.0.4), у меня оказался DES/CFB/NoPadding (догадался методом перебора и по размерности IV, так как был из 8 байт вместо 16-ти). Раскриптовал первый кусок и вынул вторые ключ и вектор инициализации.
3. Расшифровал второй кусок (DES/CFB/NoPadding)
4. Изменил classes.dex и упаковал обратно в jar с методом сжатия, чтобы был меньше оригинала и докинул в конец нули, чтобы выровнять размер к оригиналу.
5. Накрыл это обратно DES/CFB/NoPadding с добытыми ключами из первого куска и полученный массив - это массив для патча в программе TitaniumBackup.



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 05 ноября 2013 16:56 · Поправил: VodoleY
· Личное сообщение · #29

уф. страсти мордасти.. Уважаемые жители ветки, простите заранее за темность мою в познании дзена андроида. Вопрос звучит так. Есть ли вменяемая возможность подебажить хоть в емуле хоть на живом смарте игрулю, которая скопилина в байткод далвика.
З.Ы. интересует именно возможность дебага.

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 05 ноября 2013 18:30
· Личное сообщение · #30

chelpa
круто, чоу ) надо почитать про дексгуард.

VodoleY
отож. на хабре было: http://habrahabr.ru/post/150825/

-----
SaNX


| Сообщение посчитали полезным: VodoleY

Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 06 ноября 2013 10:34
· Личное сообщение · #31

SaNX пишет:
уф. страсти мордасти.. Уважаемые жители ветки, простите заранее за темность мою в познании дзена андроида. Вопрос звучит так. Есть ли вменяемая возможность подебажить хоть в емуле хоть на живом смарте игрулю, которая скопилина в байткод далвика.
З.Ы. интересует именно возможность дебага.


есть некая утилита AndBug под Linux , она вроде как очень подробно дебаджит, хотя нет, выводит очень подробный логкат, как я понял. Ей пользовался coolypf, когда лечил титануим. Но так как она под Linux, я ее не копал, под виндой ее завести не удалось.


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 38 . 39 . >>
 eXeL@B —› Основной форум —› Взлом Android приложений
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати