Сейчас на форуме: 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 ©





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

Создано: 24 сентября 2007 14:30
· Личное сообщение · #2

Где можно взять исходники патчей/кейгенов написанных для WM? Желательно на С++. Если у кого есть - дайте знать.




Ранг: 260.3 (наставник), 2thx
Активность: 0.120
Статус: Участник
PPC-PROTECT author

Создано: 24 сентября 2007 15:26
· Личное сообщение · #3

intro самому написать если есть хоть чуток ума

-----
Пиво, сиськи, транс





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

Создано: 24 сентября 2007 15:46 · Поправил: intro
· Личное сообщение · #4

-= ALEX =-
Хех. Читай внимательнее вопрос. И "если есть хоть чуток ума" можно понять, что я не спрашиваю как писать, какие функции использовать и т.д. Мне нужны исходники и только.



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

Создано: 24 сентября 2007 16:38
· Личное сообщение · #5

intro

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




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 24 сентября 2007 18:05 · Поправил: [HEX]
· Личное сообщение · #6

intro
Под покет не писал ничего, но помоему отличий от винды практически нет! Компиллер с мягких можно взять EMBEDDED VISUAL C++ или если умеешь на .NET писать, так вообще проблем не должно возникнуть. VS берешь и компилишь.

-----
Computer Security Laboratory




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

Создано: 24 сентября 2007 19:08
· Личное сообщение · #7

[HEX]

вообще то обычные С++ и MFC проги под WM можно писать и на VS 2005 и на VS 2008




Ранг: 260.3 (наставник), 2thx
Активность: 0.120
Статус: Участник
PPC-PROTECT author

Создано: 24 сентября 2007 19:32
· Личное сообщение · #8

да ему нужны сорцы и только )) и чуточку брейна)

-----
Пиво, сиськи, транс





Ранг: 282.8 (наставник), 24thx
Активность: 0.260
Статус: Участник
win32.org.ru

Создано: 24 сентября 2007 19:51
· Личное сообщение · #9

tum0rc0re, у меня вот есть VS 2008, ну и эмулятор само собой, для разработки что-нибудь еще нужно? хочу просто для себя сделать простенький hello world, интересно попробовать.

-----
may all your PUSHes be POPed!





Ранг: 260.3 (наставник), 2thx
Активность: 0.120
Статус: Участник
PPC-PROTECT author

Создано: 24 сентября 2007 19:59
· Личное сообщение · #10

Guru_eXe SDK нужен... ну и впринципе все)
Вот что у меня есть для этого (что стоит)
19.04.2007 14:14 7 934 976 ActiveSync 4.5 - Russian.msi
02.08.2007 01:07 235 059 944 eVC4.exe
02.08.2007 00:36 69 927 136 evc4sp4.exe
01.08.2007 13:14 88 159 232 Microsoft Pocket PC 2003 SDK.msi
04.08.2007 03:45 38 900 224 NETCFSetupv2.msi
28.08.2007 22:36 67 970 872 ppc2002_sdk.exe
01.08.2007 15:52 452 643 696 VS80sp1-KB926601-X86-ENU.exe
01.08.2007 13:25 57 401 344 Windows Mobile 2003 Second Edition Emulator Images for Pocket PC - WWE.msi
01.08.2007 13:08 84 916 736 Windows Mobile 5.0 Emulator Images for Pocket PC - RUS.msi
01.08.2007 13:54 182 469 120 Windows Mobile 5.0 Pocket PC SDK.msi
01.08.2007 13:21 81 073 152 Windows Mobile 5.0 Smartphone SDK.msi
01.08.2007 01:39 476 838 400 Windows Mobile 6 Professional SDK Refresh.ms
i
12 файлов 1 843 294 832 байт

-----
Пиво, сиськи, транс





Ранг: 282.8 (наставник), 24thx
Активность: 0.260
Статус: Участник
win32.org.ru

Создано: 24 сентября 2007 20:16
· Личное сообщение · #11

SDK блин тоже много весит, я чуть не умер пока эмулятор то качал, а сдк вообще не осилю =\ жаль

-----
may all your PUSHes be POPed!





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

Создано: 24 сентября 2007 22:54 · Поправил: intro
· Личное сообщение · #12

[HEX], да именно для win.mobile. А вообще ты прав, существенных отличий при кодинге под wm не много. По крайней мере гораздо меньше, чем при написании прог под Symbian.
Guru_eXe, ищи всё это добро на диске с VS2005, если таковой имеется.

Вообще вопрос снимается, всем высказавшимся спасибо. Проехали.



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 27 сентября 2007 10:50
· Личное сообщение · #13

Off
rapidshare.com/files/56972852/proteus_7.2.SP2.rar.html




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

Создано: 27 сентября 2007 11:03 · Поправил: intro
· Личное сообщение · #14

Ratinsh, что в этих 69442 Kb? Версия Labcenter Proteus 7.2 с имитационными возможностями USB... ???



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 27 сентября 2007 11:27
· Личное сообщение · #15

proteus с апдейтом = 44+6мег
асм для 51, avr, для пиков
ELECTRA Autorouter for Win32
модели, либы




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

Создано: 27 сентября 2007 12:19 · Поправил: Getorix
· Личное сообщение · #16

Протеус весч! А перевыложить куда нить могешь?

-----
Get busy living or get busy dying ©




Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 27 сентября 2007 13:15
· Личное сообщение · #17

Сам недавно скачал, да есть папка USB Drivers.
У меня канал слабый, может кто с мощьностями...
Могу попозже друга попросить. А куда положить?



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

Создано: 27 сентября 2007 15:40
· Личное сообщение · #18

Getorix

ifolder.ru/3508788




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

Создано: 28 сентября 2007 06:38
· Личное сообщение · #19

tum0rc0re
Слил. Спасиба, друх

-----
Get busy living or get busy dying ©





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

Создано: 22 декабря 2007 23:12
· Личное сообщение · #20

Каким образом прога может определить, что она запущена под эмулем и/или под WinCE Debugger'ом? Кто в курсе? опишите как это можно накодить в проге и какие варианты кому уже встречались, ну и как это дело отлавливается и обходится...
Getorix, на счёт xscale hw бряка спс, но интересует конкретно детект именно в условиях использования эмуля .



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 23 декабря 2007 00:40
· Личное сообщение · #21

Думаю стоит взять сорцы WM6 и посмотреть как реализована:
msdn2.microsoft.com/en-us/library/aa908749.aspx

-----
Реверсивная инженерия - написание кода идентичного натуральному





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

Создано: 23 декабря 2007 01:09 · Поправил: intro
· Личное сообщение · #22

Hexxx, спс, посмотрю.

я тут вот ещё что накопал - в официальной документации к wm5 нигде не упоминается параметр SPI_GETOEMINFO функции SystemParametersInfo, тем не менее он позволяет идентифицировать девайс, на котором запущена программа:

WCHAR wszMachineName[128];
SystemParametersInfo(SPI_GETOEMINFO, sizeof(wszMachineName),
&wszMachineName, 0);
WCHAR tst[500];
wsprintf(tst,L"<%s>",wszMachineName);
MessageBox(NULL,tst,wszMachineName,MB_OK);

эмулятор возвращает "Microsoft DeviceEmulator".

но, наколько я понимаю, это далеко не единственный способ...



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

Создано: 24 декабря 2007 17:16
· Личное сообщение · #23

Если я не ошибаюсь, у эмуля постоянно присутствует процесс EmulatorStub.exe (кажется так называется).




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

Создано: 25 декабря 2007 10:07
· Личное сообщение · #24

RiPPER:
Если я не ошибаюсь, у эмуля постоянно присутствует процесс EmulatorStub.exe (кажется так называется).


так и есть, в процессах действительно присутствует EmulatorStub.exe
его можно вполне безболезненно закрыть через какой-либо сторонний менеджер процессов.

Hexxx:
Думаю стоит взять сорцы WM6 и посмотреть как реализована:
msdn2.microsoft.com/en-us/library/aa908749.aspx


тест показал, что функция IsDebuggerPresent() корректно работает и на WM5, определяет как отладчик VisualStudio, так и IDA WinCE Debugger.

код

if (IsDebuggerPresent())
{
MessageBox(hWnd,L"Debugger Present",L"Warning!",0);
}


выглядит в IDA вот так

.text:000110A4 loc_110A4 ; CODE XREF: sub_11000+7Cj
.text:000110A4 ADD R1, SP, #0x80+var_7C
.text:000110A8 MOV R0, #0x42 ; 'B'
.text:000110AC BL CheckRemoteDebuggerPresent
.text:000110B0 CMP R0, #0
.text:000110B4 LDRNE R3, [SP,#0x80+var_7C]
.text:000110B8 MOVEQ R3, #0
.text:000110BC CMP R3, #0
.text:000110C0 BEQ loc_111C4
.text:000110C4 LDR R2, =asc_1201C ; Warning!
.text:000110C8 LDR R1, =aDebuggerPresen ; Debugger Present
.text:000110CC MOV R3, #0
.text:000110D0 MOV R0, R4
.text:000110D4 BL MessageBoxW
.text:000110D8 B loc_111C4





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

Создано: 25 декабря 2007 10:19 · Поправил: intro
· Личное сообщение · #25

но одна из подопытных программ валится сразу при попытке запуска под WinCE Debugger'ом, не останавливаясь даже на бряке на export start, IDA сразу выдаёт сообщение:

irs_recv: An existing connection was forcibly closed by remote host

после чего на эмуле появляются ругательства на возникшие ошибки в процессах filesys.exe, затем rapiclnt, а после и в самом исполняемом файле программы. В добавок ко всему после этих ошибок ещё и разрывается соединение с ActiveSync'ом.

интересно каким образом всё это может быть реализовано и как можно обойти?



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

Создано: 25 декабря 2007 11:44
· Личное сообщение · #26

А что за прога такая? Можно взглянуть?




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

Создано: 25 декабря 2007 12:04
· Личное сообщение · #27

а секции TLS там нет?




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

Создано: 25 декабря 2007 12:10
· Личное сообщение · #28

[wl]:
а секции TLS там нет?


нет. text, rdata, data, pdata, rsrc.

но в коде есть вызовы

BL TlsCall
BL TlsGetValue
BL TlsSetValue




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

Создано: 25 декабря 2007 13:28
· Личное сообщение · #29

то, что они есть в коде это не так важно имхо, так как до их вызова пришлось бы пройти через start... даже не знаю...



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 26 декабря 2007 12:59
· Личное сообщение · #30

Мля народ, что вам мешает посмотреть в сорцах Windows CE, которые идут с Platform builder, как устроена IsDebuggerPresent и CheckRemoteDebuggerPresent?

-----
Реверсивная инженерия - написание кода идентичного натуральному





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

Создано: 26 декабря 2007 14:18
· Личное сообщение · #31

ничего не мешает

только дело оказалось не в этом... прикинув, что раз даже до start'а не доходит, то надо искать причину не в проге, решил перепроверить настройки эмуля и иды. на других прогах нормально работает, на этой нет. в итоге короче, взял чистый образ эмуля, вбил owner'a, поставил прогу во внутреннюю память и... через какое-то время отладка всё-таки пошла. всё равно странно, что другие проги нормально запускаются под wince dbg без всяких танцев с бубном. видимо эмуль wm5 малость кривоват в некоторых местах, а может что-то не так было сконфигурено или какой конфликт возник...


<< . 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 » Выход » ЛС
   Для печати Для печати