Сейчас на форуме: Magister Yoda, site-pro, Rio (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Анализ ARM кода при взломе программ на PocketPC |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
Посл.ответ | Сообщение |
|
Создано: 01 августа 2005 13:27 · Личное сообщение · #1 Средства отладки в Microsoft eMbedded Visual C++ 4.0 "чуток" уступают ollydbg, поэтому хотел бы спросить - как с сплошном коде выловить требуемую функцию. Останов делается только на бряке, а куда ставить эти бряки в сплошном коде очень даже неясно. Если нажимать паузу (Break Execution) во время работы проги, выдается мессага: "All threads are in system calls. It is not possible to break into the debuggee at this time". Хорошо бы также знать соответствие адресов функций их названиям, может есть у кого соответствующий мануал? Да и вообще хотелось бы пообщаться с людьми которые занимаются исследованием прог под покет, ибо инет на такой матерьял очень скуп. Хорошо хоть что WASM.RU есть c замечательными статьями от Broken Sword. ----- Get busy living or get busy dying © |
|
Создано: 14 июня 2008 01:11 · Личное сообщение · #2 |
|
Создано: 14 июня 2008 01:54 · Личное сообщение · #3 =) значит остается только узнать особенности каждого если что. Тут я так почитал спор идет про разбор кода что лучше. Есть какое нибудь стабильное мнение ? , лучшее чтоли так сказать. И еще если я например прогу под арм буду смотреть , то нужен ли мне эмулятор какойнить , я так понял на винде такие файлы не работаю вообще. Или как тут подразделяется ? ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 14 июня 2008 02:09 · Личное сообщение · #4 mak Начнем с того чего ты собрался реверсить?! Если КПК с Pocket PC и Windows Mobile, то есть эмули для компа у мелкософта. Если смарты на Симбиане, то тебе в другую тему и эмулей для компа нет (если не считать эмуль для своих самопальных прог). На мой взгляд лучше ИДЫ для дизасма армы пока нет. Доки по арму и ссылки на эмули можно найти в этой теме или погуглив. ----- Computer Security Laboratory |
|
Создано: 29 декабря 2008 21:05 · Личное сообщение · #5 Как в IDA посмотреть память во время отладки? (значения регистров) В окне General registers только адреса, а содержимого нет. Ещё есть проблема: поставил eVC++ 4 SP4, VS2008, WM 6 Pro SDK Refresh. Но при загрузки .exe в eVC у меня только POCKET PC 2003 DEVICE\EMULATOR, сам кпк на WM6 и из-за несоответствия не запускается отладчик. Вываливается с ошибкой. И конкретно по ARMу: в ASMе можно было заменять JZ на JNZ - замена одного байта и программа выполняется от обратного условия. Есть ли возможность таикх замен в ARM? BEQ на BNE? Почитал статьи и сам, пока, не нашёл. |
|
Создано: 29 декабря 2008 21:54 · Личное сообщение · #6 |
|
Создано: 29 декабря 2008 22:05 · Личное сообщение · #7 Neuss, а зачем eVC, если у тебя есть IDA? С ней же очень приятно дебажить в ппс эмуляторе. По правой кнопке на значении регистра открывается окно с памятью и видишь содержимое И не забудь отключить HW бряки по Ctrl+F1, а то IDA будет вываливать с ошибками recv что-то там, у меня такое было... ----- .[ rE! p0w4 ]. |
|
Создано: 29 декабря 2008 22:59 · Поправил: Neuss · Личное сообщение · #8 |
|
Создано: 29 декабря 2008 23:18 · Личное сообщение · #9 |
|
Создано: 29 декабря 2008 23:54 · Поправил: Neuss · Личное сообщение · #10 Ultras, ещё можно просто навести на смещение в окне General registers и покажется в выпадающем окне значение, роликом вниз на мыши и окно увеличивается насколько надо. К вопросу замены BEQ на BNE: разобрался сам пишу, вдруг кому пригодится. Программа apMemo. .text:0001146C BNE loc_11494 ( 08 00 00 1A ) В HIEW загружаем файл, F4, Decode, F5, пишем .1146С, F3, меняем так: .text:0001146C BEQ loc_11494 ( 08 00 00 0A ) F9, F10. Готово. Огромное спасибо Black Neuromancer, Getorix за RU_PPCRE_s_ARM_Manual Если есть более свежая версия доки, чем 0.1 от 10.08.2005 выложите, плиз |
|
Создано: 30 декабря 2008 09:45 · Поправил: Ultras · Личное сообщение · #11 Neuss пишет: ещё можно просто навести на смещение в окне General registers и покажется в выпадающем окне значение, роликом вниз на мыши и окно увеличивается насколько надо. Угу, но это уже на любителя. Мне например нагляднее видеть в открытых окнах память и как она меняется сразу видно. Особенно когда использовано какое-нибудь крипто. ----- .[ rE! p0w4 ]. |
|
Создано: 30 декабря 2008 13:56 · Личное сообщение · #12 |
|
Создано: 30 декабря 2008 15:07 · Личное сообщение · #13 |
|
Создано: 30 декабря 2008 16:05 · Личное сообщение · #14 |
|
Создано: 01 января 2009 14:24 · Личное сообщение · #15 А зачем тебе новые мануалы на архитектуру ARM? Девайсы на windows mobile в основном на коде v5. Инфа про v6 доступна, но оно только в ARM11. А это пока только iPhone и девайсы на MSM7200. Инфа про v7 тоже помоему уже есть, но оно только в Cortex. Девайсов на Cortex'aх пока нет. ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 01 января 2009 16:27 · Личное сообщение · #16 |
|
Создано: 02 января 2009 03:48 · Личное сообщение · #17 Мануал нужен чтоб понять принцип формирования опкода команд. MOV и LDR простые, с ними разобрался, а BEQ, BNE вообще не понимаю... Есть опкод самой команды, но где записано смещение куда осуществляется переход? Просьба к знающим объяснить на примере. p.s. в hiew есть возможность написать саму команду, а он сам переведёт её в hex. есть ли подобное для arm? |
|
Создано: 02 января 2009 07:07 · Поправил: Getorix · Личное сообщение · #18 BEQ, BNE вообще не понимаю ну на самом деле ветвление намного проще остальных (и в мануале описаны кстати) EQ NE это просто условия, L сохраняет адрес возврата, а расчет конечного адреса происходит по формуле: PC = PC + (immed_24 << 2) что на практике будет выглядеть так: dst_adr = (cur_adr + 8) + (immed_24 << 2) поскольку PC содержит адрес инструкции ветвления + 8 есть ли подобное для arm? Конечно есть, но если не брать в расчет компиляторы то остается не так много вариантов У меня такая штука пользуется в составе полной версии DisARM Studio, а у Лешки (-= ALEX =-) как я понял целая утиля (типа Hiew) на этот счет, причем под десктоп, попроси у него ----- Get busy living or get busy dying © |
|
Создано: 02 января 2009 09:08 · Личное сообщение · #19 |
|
Создано: 02 января 2009 12:25 · Поправил: Hexxx · Личное сообщение · #20 Neuss пишет: Мануал нужен чтоб понять принцип формирования опкода команд. MOV и LDR простые, с ними разобрался, а BEQ, BNE вообще не понимаю... Есть опкод самой команды, но где записано смещение куда осуществляется переход? Просьба к знающим объяснить на примере. Ну так тебе не "новый" мануал нужен, а мануал вообще. [url=http://www.arm.com/miscPDFs/14128.pdf ]http://www.arm.com/miscPDFs/14128.pdf [/url] раздел A4.1.5 Смещение закодированно в битах <target_address> The branch target address is calculated by: 1. Sign-extending the 24-bit signed (two's complement) immediate to 30 bits. 2. Shifting the result left two bits to form a 32-bit value. 3. Adding this to the contents of the PC, which contains the address of the branch instruction plus 8 bytes. про thumb читай в разделе A7.1.13 ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 02 января 2009 14:31 · Поправил: Neuss · Личное сообщение · #21 Getorix, Поможешь раздобыть полный DisARM Studio? Гугл даёт только Lite. Getorix,Hexxx, Вот, что понял: .text:000480A0 BEQ loc_48130 ; К адресу добавляем 4 байта .text:000480A4 .text:0004812C .text:00048130 LDR R0, [SP,#0x438+hKey] ; hKey ; Из адреса вычитаем 4 байта 12C - 0A4 = 88 / 4 = 22 Смотрим Hex в IDA: 22 00 00 0A BEQ loc_48130 Но это случай перехода смещением вниз. Проверил на нескольких примерах. Вверх так просто не получается... В английском не настолько силён, лучше на примере, если не трудно. |
|
Создано: 03 января 2009 17:11 · Личное сообщение · #22 Neuss пишет: В английском не настолько силён, лучше на примере, если не трудно. Знаешь, если бы ты задавал вопрос типа: почему у меня не компилится программа helloworld. И не понимал бы комменты на английском - я бы перевел. Но ты не такой уж ламер, поэтому справишься с переводом 3 предложений. ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 03 января 2009 18:00 · Личное сообщение · #23 Hexxx, Сидя за праздничным столом, сообразил схватил кпк и в DisARM проверил: Переход выше по коду .text:000480A0 BEQ loc_48030 480A0 + 4 = 480A4 - 48030 = 74 / 4 = 1D FF FF FF - 00 00 1D = FF FF E2 E2 FF FF 0A Спасибо всем за поддержку Большая просьба, если есть DisARM Studio Full, поделитесь на мыло shnaider_sdk [ @ ] inbox.ru |
|
Создано: 03 января 2009 18:42 · Личное сообщение · #24 |
|
Создано: 03 января 2009 20:30 · Личное сообщение · #25 |
|
Создано: 03 января 2009 20:38 · Личное сообщение · #26 |
|
Создано: 04 января 2009 03:43 · Поправил: Getorix · Личное сообщение · #27 |
|
Создано: 04 января 2009 06:37 · Личное сообщение · #28 |
|
Создано: 04 января 2009 18:35 · Личное сообщение · #29 Энтузиастов мало, да и тема сложная очень. Не каждый может разобраться. Нужна "реклама" чтоб народ понимал что всё реально) Про вынь мобайл вообще почти ничего нет... Всё надо додумывать Сейчас время есть - сижу изучаю чужие крэки, разбираюсь. Самая трудность для меня - кейгены. Практически не нахожу сами процедуры генерации ключа. |
|
Создано: 06 января 2009 04:02 · Личное сообщение · #30 |
|
Создано: 06 января 2009 05:06 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
eXeL@B —› Крэки, обсуждения —› Анализ ARM кода при взломе программ на PocketPC |