Сейчас на форуме: Magister Yoda, site-pro, Rio (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› Анализ ARM кода при взломе программ на PocketPC
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
Посл.ответ Сообщение


Ранг: 209.5 (наставник), 42thx
Активность: 0.10
Статус: Участник
WinCE ARM M@sTeR

Создано: 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 ©




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

Создано: 11 января 2010 13:30
· Личное сообщение · #2

Всем привет!
Докапался в коде вот до такого места:

[img]D:\Zuma\Место взлома.JPG[/img]

Надо чтобы сработал переход на функцию : loc_434E0.
Он может быть только в том случае если флаг Z = 1, эту еденицу должна выставить функция sub_4351C.

Вобщем пробовал изменить код MOV R4, R0 на SUB R4, R0.
После чего прога вообще не запускается, вот и не ясно в чём причина, подскажите кто знает!

bb4e_11.01.2010_CRACKLAB.rU.tgz - Место взлома.JPG




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

Создано: 13 января 2010 13:00
· Личное сообщение · #3

AxEExE похоже что флаг дальше не нужен, так что смело заменяй BEQ на B.

на лучше меняй функцию sub_4351C, возможно, она вызывается не один раз



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

Создано: 13 января 2010 16:18
· Личное сообщение · #4

[wl] Да я примерно так и сделал только BEQ на BNE поменял и всё вроде впорядке, но!

Только проблема как будто в версии WM5 чтоль.
После изменения опкода в HEX редакторе сохранил фаил и попробовал запустить на WM6 Classic Emulator и не запускается.
Также пробовал на WM5 и не паше, и во всех случаях вот такая мессага выскакивает:

Потом попробовал на Pocket PC 2003 CE Emulator и работает как не странно.


281e_13.01.2010_CRACKLAB.rU.tgz - Безымянный.bmp




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

Создано: 13 января 2010 21:15
· Личное сообщение · #5

есть какая-то утила, которая отрезает сертификаты, но я не помню как она называется




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 14 января 2010 01:51
· Личное сообщение · #6

[wl] пишет:
есть какая-то утила, которая отрезает сертификаты, но я не помню как она называется


удалить Цифровую подпись файла можно с помощью программы ImageRemCert, которую я выкладывал в топике Как удалить сертификат безопасности

на всякий случай напоминаю утиль, которая открывает хранилище сертификатов (под обычную винду)


f53e_17.06.2007_CRACKLAB.rU.tgz - ImageRemCert
5d62_02.04.2009_CRACKLAB.rU.tgz - Certificate Manager v1.02

-----
EnJoy!




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

Создано: 14 января 2010 09:24
· Личное сообщение · #7

[wl], Jupiter Спасибо парни я о такой фигне слышал но не думал что она в эгзешник вшита.
Догадывался что проверка идёт, но чтоб в файлике! .

С помощь ImageRemCert сразу всё получилось под любой WM работает!!!

Ещё раз благодарен за проги и за инфу - вообще прикольный сайт !

А топик "Как удалить сертификат безопасности" обязательно посмотрю.



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

Создано: 19 января 2010 15:28
· Личное сообщение · #8

Лучше в конце кола 4351С Сделать Так, чтоб на Выходе Всегда Был Mov R0, #1 ! и Переподписть прогу ! Или .как сказано выше, откусить сертификат !




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 19 января 2010 17:45
· Личное сообщение · #9

AxEExE пишет:
С помощь ImageRemCert сразу всё получилось под любой WM работает!!!

метод вообще на любой винде работает

-----
EnJoy!




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

Создано: 29 января 2010 14:47
· Личное сообщение · #10

Tyra пишет:
Переподписть прогу


А как её переподписать ?.

Открепить то с помощьюпрограммы ImageRemCert понятно как!



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

Создано: 15 февраля 2010 14:44
· Личное сообщение · #11

AxEExE
Подписывается Этим !

603b_15.02.2010_CRACKLAB.rU.tgz - SIGN.rar



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

Создано: 17 февраля 2010 13:02
· Личное сообщение · #12

Подскажите, плз, кто знает.
Обратил внимание, что при обращении к функции FindFirstFileW() всегда выполняются следующие действия:
- перед вызовом функции читается память по адресу 0xB064 и сохраняется в стеке
- после вызова функции это сохраненное значение читается в R0 и вызывается подпрограммка типа
Code:
  1. LDR     R12, [0x0B064]
  2. CMP     R0, R12
  3. MOVEQS  R12, R0,LSR#16
  4. BXEQ    LR

Сначала я подумал, что это восстанавливается текущая директория, измененная FindFirstFileW(), но тогда надо было бы просто сохранить прежнее значение по адресу R0?
Не понимаю смысла этой функции, особенно последних двух операторов.



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

Создано: 19 февраля 2010 14:35
· Личное сообщение · #13

Господа знатоки, подскажите чайнику, плз!

Смысл задачи в том, что в зависимости от того, какая версия файла \windows\ePQ_Bg.png используется в прошивке, мне надо выводить цвет текста либо белым, либо черным. Версию файла .png проще всего определить по его размеру.
Я заменяю BL SetTextColor следующей коротенькой программкой:
Code:
  1.      sub_0003c374: STMFD      SP!, {R4-R6,LR}
  2.                                MOV         R4, R0
  3.                                MOV         R5, R1
  4.                                SUB          SP, SP,#0x244
  5.                                LDR          R0, =unk_1004AED4                    ; адрес 0x0B064
  6.                                LDR          R0, [R0] 
  7.                                STR          R0, [SP,#0x254-0x1C] 
  8.                                LDR          R0, =\windows\ePQ_Bg.png        ; проверяемый файл
  9.                                ADD         R1, SP, #0x254-0x254 
  10.                                BL            FindFirstFileW 
  11.                                CMN         R0, #1 
  12.                                BEQ         loc_Hack                                       ; файл не найден, используем "старый" цвет
  13.                                BL            FindClose 
  14.                                LDR         R6, [SP,#0x20] 
  15.                                LDR         R0, #0x2F6A                                 ; размер "правильного" файла
  16.                                CMP        R6, R0 
  17.                                BNE         loc_Hack                                       ; файл "неправильный", используем "старый" цвет
  18.                                MVN        R1, R5                                           ; "новый" цвет = инвертированный "старый"
  19.                                B             loc_SetColor 
  20.                loc_Hack: MOV        R1, R5                                           ; используем "старый" цвет
  21.          loc_SetColor: LDR         R0, [SP,#0x254-0x1C] 
  22.                                BL           sub_10036840                             ; вот не знаю, зачем это надо
  23.                                MOV        R0, R4 
  24.                                BL           SetTextColor 
  25.                                ADD        SP, SP,#0x244 
  26.                                LDMFD    SP!, {R4-R6,PC} 


sub_10036840 выглядит так (что она делает, я не понимаю, но она всегда используется в аналогичных случаях после вызова FindFirstFile в оригинальной DLL):

Code:
  1. sub_10036840:      LDR R12, =unk_1004AED4
  2.                                LDR R12, [R12]
  3.                                CMP R0, R12
  4.                                MOVEQS R12, R0,LSR#16
  5.                                BXEQ LR


Проблема в том, что такой патч вызывает явные сбои в основной программе (я не могу точно сказать, что происходит, но работает она явно некорректно), такое впечатление, что обращается куда-то не туда и не находит нужных ресурсов.




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

Создано: 19 февраля 2010 20:04 · Поправил: [wl]
· Личное сообщение · #14

попробуй удвоить слеши в названии файла, в духе \windows\ePQ_Bg.png
либо, если не можешь увеличить строку, поверни их в другую сторону, /windows/ePQ_Bg.png

хм, двойные слеши форум убирает чтоли....



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

Создано: 24 февраля 2010 10:44
· Личное сообщение · #15

Выяснил точно, что система просто не находит этот файл (FindFirstFile возвращает 0xFFFFFFFF). Пробовал и двойные слеши, и "/", и "..\Windows\ePQ_Bg.png", и ".\ePQ_Bg.png".
Странно, что когда написал тестовый exe-шник и тупо перебил в нем коды команд в WinHex на мои (чтобы посмотреть IDA в дебаге), все работает совершенно нормально (т.е. файл существует и нормально определяется его размер).

Может, у кого есть мысли, почему файл не находится? Не может ли это быть связано с тем, что он к этому моменту уже (возможно) открыт и используется системой? Хотя вроде бы FindFirstFile открывает файл только на чтение?



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

Создано: 04 марта 2010 00:52 · Поправил: vovichek62
· Личное сообщение · #16

Имеется dll.
Хочу при загрузке ее в память проверить некоторое условие, по результатам проверки создать переменную и присвоить ей определенное значение. Эта переменная должна быть доступна на чтение для "родных" функций dll все время до выгрузки dll.

Для этого собираюсь непосредственно перед выходом из DllEntryPoint() сделать вызов моей функции, которая должна выполнить необходимые действия по инициализации переменной.

Вопросов два:
- осуществима ли такая схема в принципе?
- как мне найти свободное место для такой переменной (вернее, для двух переменных по 3 байта каждая, старший байт двойного слова мне безразличен)? Я так понимаю, что это место надо искать в секции idata (Readable and Writable)? И есть ли там вообще свободное место?

Или, как более предпочтительный вариант, можно ли что-нибудь однократно записать при загрузке dll в секцию pdata?




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

Создано: 04 марта 2010 14:55
· Личное сообщение · #17

обычно в длл данные сохраняют в tls.
почитай wm-help.net/books-online/print-page/59464/59464-15.html



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

Создано: 05 марта 2010 13:13
· Личное сообщение · #18

[wl],
спасибо за интересную ссылку.
К сожалению, в данном конкретном случае у меня совершенно нет места для вызова потоковых функций. Мне надо уложиться в 3-4 оператора.
Заметил, что в секции idata есть ASCII строки, заканчивающиеся нулем, после которых (видимо, для выравнивания по 4 байта) добавлены еще по 3 нуля. Они-то вряд ли осмысленно используются. Попробую приспособить их для своих целей...



Ранг: 31.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 18 марта 2010 02:03 · Поправил: TolyaN3z
· Личное сообщение · #19

Кто-нибудь пробовал подключать отладчик IDA 5.5 к MDE 3.0 через WMDC под W7 x64 ?
Пробую запустить отладку — IDA подключается, но тут же выдаёт ошибку:
"incompatible debugging server"
после переподключения выдаёт только:
"Could not copy remote debugging server. Устройство не готово."
Всё это пробуется на WM5.0 Pocket PC R2 и Pocket PC 2003 SE VGA. Прога нативная, уже установлена и работает в эмуляторе, так что проблема не в ней.

UPD
Разобрался, IDA нужна x32.



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

Создано: 30 апреля 2010 10:05
· Личное сообщение · #20

Кто-нибудь дизасмил винду? Проц SC32442 радиомодуль висит на UART1, если его перепаять на UART2, сильно много править придется? Кто поможет инфой?



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

Создано: 10 мая 2010 23:00
· Личное сообщение · #21

Нужна помощь!
Есть окно, созданное на базе стандартного класса SysListView32. Мне надо поменять в нем цвет фона (со стандартного белого на черный). Как это можно сделать? Цвет надо менять только в этом окне, не трогая всех остальных, созданных на базе этого класса.



Ранг: 46.1 (посетитель), 1thx
Активность: 0.02=0.02
Статус: Участник

Создано: 11 мая 2010 12:01
· Личное сообщение · #22

Yokel пишет:
Кто-нибудь дизасмил винду? Проц SC32442 радиомодуль висит на UART1, если его перепаять на UART2, сильно много править придется? Кто поможет инфой?

иногда наверно хватает поправить реестр, а вообще, гугли в сторону ресурсов где dumprom упоминается.



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

Создано: 30 июля 2010 23:50
· Личное сообщение · #23

TolyaN3z,
можно подробнее о подключении отладчика IDA через WMDC под W7 x64?
Раньше стояла XP и ActiveSync, никаких проблем не было. Поставил семерку X64 - пишет "Connecting Windows CE Device" и все, дальше никуда. IDA пробовал и 64, и 32. Явно нужны какие-то настройки, может, Каспер гадит? Хотя прописал и IDA, и WMDC в доверенные, в сетевом экране подключение сделал доверенным.
В чем трабла? Где копать?



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

Создано: 21 февраля 2011 13:05
· Личное сообщение · #24

ToALL
Подскажите, есть ли возможность распаковки файлов, сжатых UPX ?




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 21 февраля 2011 13:27
· Личное сообщение · #25

zhuchella пишет:
Подскажите, есть ли возможность распаковки файлов, сжатых UPX ?

Ещё раз вам повторяю - распаковка upx это даже не проблема!

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




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

Создано: 21 февраля 2011 13:45
· Личное сообщение · #26

[0utC4St] пишет:
Ещё раз вам повторяю - распаковка upx это даже не проблема!

В смысле "не проблема" ? Просто я тут читал и изучал методы для файлов под ПК, а вот под АРМ файлы эти методы не подходят... Может Вы мне поможете распаковать пару файлов ?.. Или подскажите, где поситать ?
Буду очень признателен.




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 21 февраля 2011 14:27
· Личное сообщение · #27

zhuchella пишет:
Может Вы мне поможете распаковать пару файлов ?

Выложите хотя бы 1 файл.

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




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

Создано: 21 февраля 2011 14:44
· Личное сообщение · #28

[0utC4St] пишет:
Выложите хотя бы 1 файл.

Упакованый скрэмблированным upx - rghost.ru/4469266
И ещё есть два файла ;)



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

Создано: 21 февраля 2011 15:07
· Личное сообщение · #29

zhuchella пишет:
Упакованый скрэмблированным upx - rghost.ru/4469266

А Где Вы Увидели упаковку на Этом Файле ?! Данный Файл Чистый и Не пакованный !



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

Создано: 21 февраля 2011 15:09
· Личное сообщение · #30

[0utC4St]
Проверте почту наруборде.
TyraTyra пишет:
А Где Вы Увидели упаковку на Этом Файле ?! Данный Файл Чистый и Не пакованный !

А можете глянуть на этот файл - rghost.ru/4469301 ?
Спасибо большое




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 21 февраля 2011 15:36
· Личное сообщение · #31

zhuchella, вот этот ваш файл упакован
rghost.ru/4469301
процентов на 90-95 могу заявить что это upx

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=



<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
 eXeL@B —› Крэки, обсуждения —› Анализ ARM кода при взломе программ на PocketPC
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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