Посл.ответ |
Сообщение |
Ранг: 153.9 (ветеран) Активность: 0.12↘0 Статус: Участник reborn
|
Создано: 10 августа 2006 22:20 · Поправил: newborn · Личное сообщение · #1
Народ, ктонить ломал под Симбиан проги ? Искал в инете, инфы вообще неоказалось, так мелочи которые не помогут при взломе. Интересует вот что:
1) Чем ломать.
2) Какая нибудь инфа.
Всем откликнувшимся спасибо.
----- ~ the Power Of Reversing team ~ | Сообщение посчитали полезным: |
|
Ранг: 481.4 (мудрец), 109thx Активность: 0.18↘0 Статус: Участник Тот самый :)
|
Создано: 17 февраля 2008 13:44 · Личное сообщение · #2
[HEX] пишет:
.text:10000684 ADR R1, off_10000690
.text:10000688 B Copy__6TDes16RC7TDesC16 ; TDes16::Copy(TDesC16 const &)
Ты вызываешь функцию класса, у тебя в R0 должен быть указатель на одинэкземпляр класса TDes16, а в R1 указатель на второй экземпляр. Я хз что у тебя там попадает через R0 в функцию fake_IMEI().
----- Реверсивная инженерия - написание кода идентичного натуральному | Сообщение посчитали полезным: |
 Ранг: 467.7 (мудрец), 5thx Активность: 0.27↘0 Статус: Участник Иной :)
|
Создано: 17 февраля 2008 14:50 · Поправил: [HEX] · Личное сообщение · #3
Hexxx
Эмм.... что то не въехал  В R0 помещается источник, а в R1 указатель куда помещается копия? Или наоброт? Или я вообще не верно мыслю
----- Computer Security Laboratory | Сообщение посчитали полезным: |
Ранг: 481.4 (мудрец), 109thx Активность: 0.18↘0 Статус: Участник Тот самый :)
|
Создано: 17 февраля 2008 21:13 · Поправил: Hexxx · Личное сообщение · #4
Во-первых ты вызываешь TDes16::Copy() - это метод класса TDes16, а не какую-то там memcpy(). В методы класса первым параметром всегда передается указатель на экземпляр класса. На ARMе указатель на экземпляр класса передается через R0, а на x86 - через ecx. Если ты хочешь вызвать метод класса, то убедись что в R0 у тебя указатель на класс TDes16.
Во-вторых TDes16::Copy(TDesC16 const &) принимает как параметр, ссылку на класс TDesC16. Класс TDesC16 - это тебе не просто указатель на строку "366666666666666". Класс TDesC16 - это вот такая структура:
class TDesC16
{
TUint iLength;
wchar_t Data[iLength];
}
Т.е. в начале идут 4 байта - длина строки, а после них уже идет уникодовая строка.
Так вот, в TDes16::Copy() надо в R1 передавать указатель на вот такую структуру.
p.s. Надо хотя бы немножко попрограммировать под Symbian. И такие вопросы возникать не будут.
----- Реверсивная инженерия - написание кода идентичного натуральному | Сообщение посчитали полезным: |
 Ранг: 467.7 (мудрец), 5thx Активность: 0.27↘0 Статус: Участник Иной :)
|
Создано: 18 февраля 2008 11:19 · Личное сообщение · #5
Hexxx
Спасибо буду разбираться. Программить вроде нечего под Симбу поэтому столько и недопониманий
P.S. В R1 я и передаю аналогичную структуру. Сначала 4 байта длины строки, а дальше сама строчка юникодовая.
----- Computer Security Laboratory | Сообщение посчитали полезным: |
 Ранг: 467.7 (мудрец), 5thx Активность: 0.27↘0 Статус: Участник Иной :)
|
Создано: 18 февраля 2008 16:00 · Поправил: [HEX] · Личное сообщение · #6
Hexxx
Посидел посмотрел...
.text:10000F78 loc_10000F78 ; CODE XREF: start+11Cp
.text:10000F78 ; sub_1000841C+40p ...
.text:10000F78 STMFD SP!, {R4,R5,LR}
.text:10000F7C MOV R5, R0
.text:10000F80 ADD R4, R5, #0x20
.text:10000F84 MOV R0, R4
.text:10000F88 LDR R1, [R4,#4]
.text:10000F8C BL FillZ__6TDes16i ; TDes16::FillZ(int)
.text:10000F90 MOV R0, R4
.text:10000F94 BL Zero__6TDes16 ; TDes16::Zero(void)
.text:10000F98 CMP R5, #0
.text:10000F9C MOVEQ R0, R5
.text:10000FA0 ADDNE R0, R5, #0x18
.text:10000FA4 ADD R1, R5, #0x20
.text:10000FA8 CMP R0, #0
.text:10000FAC BLNE __7TPtrC16RC7TDesC16
.text:10000FB0 ADD R0, R5, #0x20
.text:10000FB4 BL GetMachineIdL__10PlpVariantRt4TBuf1i128 ; PlpVariant::GetMachineIdL(TBuf<128> &)
.text:10000FB8 CMP R5, #0
.text:10000FBC MOVEQ R0, R5
.text:10000FC0 ADDNE R0, R5, #0x18
.text:10000FC4 ADD R1, R5, #0x20
.text:10000FC8 CMP R0, #0
.text:10000FCC BLNE __7TPtrC16RC7TDesC16
.text:10000FD0 LDMFD SP!, {R4,R5,LR}
.text:10000FD4 BX LR
И теоретически все вроде верно. В R0 перед вызовом GetMachineID помещается ссылка на класс TBuf<128> что помоему тоже самое что и TDesC16.
Дальше кладу в R1 указатель на готовую структуру
.text:1000DA80 00 00 00 00 0F 00 00 00 31 00 32 00 33 00 34 00 ....¤...1.2.3.4.
.text:1000DA90 35 00 36 00 37 00 38 00 39 00 30 00 31 00 32 00 5.6.7.8.9.0.1.2.
.text:1000DAA0 33 00 34 00 35 00 00 00
Вызываю Copy вместо GetMachineID дальше возвращаюсь...
Но ничего не выходит  Валиться прога...
P.S. Результат выполнения функции возвращается в регистр R5 ?
----- Computer Security Laboratory | Сообщение посчитали полезным: |
 Ранг: 141.4 (ветеран) Активность: 0.05↘0 Статус: Участник
|
Создано: 18 февраля 2008 17:22 · Личное сообщение · #7
[HEX] вот, набросал кое-что, смотри:
имеем следующую функцию:
void xxx:GetImei(TDes& aImei)
{
//таким образом получаем реальный imei
TPlpVariantMachineId imei;
PlpVariant::GetMachineIdL(imei);
aImei.Copy(imei);
//а вот таким подставляем нужное нам значение
aImei.Copy(_L("123456789012345"));
}
и вот как всё это выглядит:
.code:100001B4 ;
.code:100001B4
.code:100001B4
.code:100001B4 sub_100001B4 ; CODE XREF: sub_10000210+98p
.code:100001B4
.code:100001B4 var_114 = -0x114
.code:100001B4
.code:100001B4 STMFD SP!, {R4,R5,LR}
.code:100001B8 SUB SP, SP, #0x110
.code:100001BC MOV R5, R1
.code:100001C0 ADD R0, SP, #0x11C+var_114
.code:100001C4 MOV R1, #0x80
.code:100001C8 BL TBufBase16::TBufBase16(int)
.code:100001CC ADD R4, SP, #0x11C+var_114
.code:100001D0 MOV R0, R4
.code:100001D4 BL PlpVariant::GetMachineIdL(TBuf<128> &)
.code:100001D8 MOV R0, R5
.code:100001DC MOV R1, R4
.code:100001E0 BL TDes16::Copy(TDesC16 const &)
.code:100001E4 MOV R0, SP
.code:100001E8 LDR R1, =a12345678901234
.code:100001EC BL TPtrC16::TPtrC16(ushort const *)
.code:100001F0 MOV R0, R5
.code:100001F4 MOV R1, SP
.code:100001F8 BL TDes16::Copy(TDesC16 const &)
.code:100001FC B loc_10000204
.code:100001FC ; ---------------------------------------------------------------------- -----
.code:10000200 off_10000200 DCD a12345678901234 ; DATA XREF: sub_100001B4+34r
.code:10000200 ; "123456789012345"
.code:10000204 ; ---------------------------------------------------------------------- -----
.code:10000204
.code:10000204 loc_10000204 ; CODE XREF: sub_100001B4+48j
.code:10000204 ADD SP, SP, #0x110
.code:10000208 LDMFD SP!, {R4,R5,LR}
.code:1000020C BX LR
.code:1000020C ; End of function sub_100001B4
.code:1000020C
.code:10000210
.code:10000210 ;
.code:100010C0 00 00 00 00 33 94 EE 06 31 00 32 00 33 00 34 00 ....3Фю1.2.3.4.
.code:100010D0 35 00 36 00 37 00 38 00 39 00 30 00 31 00 32 00 5.6.7.8.9.0.1.2.
.code:100010E0 33 00 34 00 35 00 00 00 00 00 00 00 00 00 00 00 3.4.5...
надеюсь теперь разберёшься ;)
| Сообщение посчитали полезным: |
 Ранг: 196.6 (ветеран), 11thx Активность: 0.07↘0.01 Статус: Участник
|
Создано: 18 февраля 2008 17:23 · Поправил: [wl] · Личное сообщение · #8
в r5 хранится какой-то класс, по адресу 0x20 которого хранится переменная что-то типа TBuf<32> iImeiStr;
именно эта переменная передается в функцию взятия имея (ADD R0, R5, #0x20)
по идее твоя функция должна работать, только что-то мне тоже кажется, что нужно делать LDR, а не ADR
вот немного по другому скомпилировал код, может более ясно будет, без лишних преобразований
TBuf<128> aImei; - переменная класса
_LIT(fake, "123456789012345");
void CGuiTestAppUi::GetImei()
{
//таким образом получаем реальный imei
//TPlpVariantMachineId imei;
PlpVariant::GetMachineIdL(aImei);
//aImei.Copy(imei);
//а вот таким подставляем нужное нам значение
aImei.Copy(fake);
}
.text:10000138 sub_10000138
.text:10000138 STMFD SP!, {R4,LR}
.text:1000013C ADD R4, R0, #0x44
.text:10000140 MOV R0, R4
.text:10000144 BL PlpVariant::GetMachineIdL(TBuf<128> &)
.text:10000148 MOV R0, R4
.text:1000014C LDR R1, =a12345678901234
.text:10000150 BL TDes16::Copy(TDesC16 const &)
.text:10000154 B loc_1000015C
.text:10000154 ; ---------------------------------------------------------------------- -----
.text:10000158 off_10000158 DCD a12345678901234 ; DATA XREF: sub_10000138+14r
.text:10000158 ; "123456789012345"
.text:1000015C ; ---------------------------------------------------------------------- -----
.text:1000015C
.text:1000015C loc_1000015C ; CODE XREF: sub_10000138+1Cj
.text:1000015C LDMFD SP!, {R4,LR}
.text:10000160 BX LR
.text:10000160 ; End of function sub_10000138
| Сообщение посчитали полезным: |
 Ранг: 467.7 (мудрец), 5thx Активность: 0.27↘0 Статус: Участник Иной :)
|
Создано: 18 февраля 2008 23:24 · Личное сообщение · #9
блин... ну чтож такое то... Опять я чтоли что то не то делаю?
Вот оригинальный кусок кода:
.text:10000F78 STMFD SP!, {R4,R5,LR}
.text:10000F7C MOV R5, R0
.text:10000F80 ADD R4, R5, #0x20
.text:10000F84 MOV R0, R4
.text:10000F88 LDR R1, [R4,#4]
.text:10000F8C BL FillZ__6TDes16i ; TDes16::FillZ(int)
.text:10000F90 MOV R0, R4
.text:10000F94 BL Zero__6TDes16 ; TDes16::Zero(void)
.text:10000F98 CMP R5, #0
.text:10000F9C MOVEQ R0, R5
.text:10000FA0 ADDNE R0, R5, #0x18
.text:10000FA4 ADD R1, R5, #0x20
.text:10000FA8 CMP R0, #0
.text:10000FAC BLNE __7TPtrC16RC7TDesC16
.text:10000FB0 ADD R0, R5, #0x20
.text:10000FB4 BL GetMachineIdL__10PlpVariantRt4TBuf1i128 ; PlpVariant::GetMachineIdL(TBuf<128> &)
.text:10000FB8 CMP R5, #0
.text:10000FBC MOVEQ R0, R5
.text:10000FC0 ADDNE R0, R5, #0x18
.text:10000FC4 ADD R1, R5, #0x20
.text:10000FC8 CMP R0, #0
.text:10000FCC BLNE __7TPtrC16RC7TDesC16
.text:10000FD0 LDMFD SP!, {R4,R5,LR}
.text:10000FD4 BX LR
Ловкость рук и получаем такое:
.text:10000F78 STMFD SP!, {R4,R5,LR}
.text:10000F7C MOV R5, R0
.text:10000F80 ADD R4, R5, #0x20
.text:10000F84 MOV R0, R4
.text:10000F88 LDR R1, [R4,#4]
.text:10000F8C BL FillZ__6TDes16i ; TDes16::FillZ(int)
.text:10000F90 MOV R0, R4
.text:10000F94 BL Zero__6TDes16 ; TDes16::Zero(void)
.text:10000F98 CMP R5, #0
.text:10000F9C MOVEQ R0, R5
.text:10000FA0 ADDNE R0, R5, #0x18
.text:10000FA4 ADD R1, R5, #0x20
.text:10000FA8 CMP R0, #0
.text:10000FAC BLNE __7TPtrC16RC7TDesC16
.text:10000FB0 ADD R0, R5, #0x20
.text:10000FB4 BL GetMachineIdL__10PlpVariantRt4TBuf1i128 ; PlpVariant::GetMachineIdL(TBuf<128> &)
.text:10000FB8 B loc_10000684
....
....
.text:10000684 loc_10000684 ; CODE XREF: start+FB8j
.text:10000684 ADD R0, R5, #0x20
.text:10000688 LDR R1, =a12345678901234
.text:1000068C BL Copy__6TDes16RC7TDesC16 ; TDes16::Copy(TDesC16 const &)
.text:10000690 ADD R0, R5, #0x18
.text:10000694 ADD R1, R5, #0x20
.text:10000698 BL __7TPtrC16RC7TDesC16
.text:1000069C LDMFD SP!, {R4,R5,LR}
.text:100006A0 BX LR
.text:100006A0 ; ---------------------------------------------------------------------- -----
.text:100006A4 off_100006A4 DCD a12345678901234 ; DATA XREF: start+688r
.text:100006A4 ; "123456789012345"
.text:100006A8 ; ---------------------------------------------------------------------- -----
....
....
.text:1000DA80 00 00 00 00 0F 00 00 00 31 00 32 00 33 00 34 00 ....¤...1.2.3.4.
.text:1000DA90 35 00 36 00 37 00 38 00 39 00 30 00 31 00 32 00 5.6.7.8.9.0.1.2.
.text:1000DAA0 33 00 34 00 35 00 00 00
....
В итоге очередной вылет
----- Computer Security Laboratory | Сообщение посчитали полезным: |
 Ранг: 196.6 (ветеран), 11thx Активность: 0.07↘0.01 Статус: Участник
|
Создано: 19 февраля 2008 15:24 · Личное сообщение · #10
а почему не сделать так?
....
.text:10000FB4 BL loc_10000684
....
.text:10000684 LDR R1, =a12345678901234
.text:10000688 BL Copy__6TDes16RC7TDesC16 ; TDes16::Copy(TDesC16 const &)
.text:1000068C BX LR
| Сообщение посчитали полезным: |
 Ранг: 467.7 (мудрец), 5thx Активность: 0.27↘0 Статус: Участник Иной :)
|
Создано: 19 февраля 2008 16:23 · Личное сообщение · #11
[wl]
Помоему я это делал второй своей попыткой.
Щас попробовал еще раз и опять тот же эффект
Потихоньку здают нервы....
.text:10000F78 loc_10000F78 ; CODE XREF: start+11Cp
.text:10000F78 ; sub_1000841C+40p ...
.text:10000F78 STMFD SP!, {R4,R5,LR}
.text:10000F7C MOV R5, R0
.text:10000F80 ADD R4, R5, #0x20
.text:10000F84 MOV R0, R4
.text:10000F88 LDR R1, [R4,#4]
.text:10000F8C BL FillZ__6TDes16i ; TDes16::FillZ(int)
.text:10000F90 MOV R0, R4
.text:10000F94 BL Zero__6TDes16 ; TDes16::Zero(void)
.text:10000F98 CMP R5, #0
.text:10000F9C MOVEQ R0, R5
.text:10000FA0 ADDNE R0, R5, #0x18
.text:10000FA4 ADD R1, R5, #0x20
.text:10000FA8 CMP R0, #0
.text:10000FAC BLNE __7TPtrC16RC7TDesC16
.text:10000FB0 ADD R0, R5, #0x20
.text:10000FB4 BL loc_10000684
.text:10000FB8 ; ---------------------------------------------------------------------- -----
.text:10000FB8 CMP R5, #0
.text:10000FBC MOVEQ R0, R5
.text:10000FC0 ADDNE R0, R5, #0x18
.text:10000FC4 ADD R1, R5, #0x20
.text:10000FC8 CMP R0, #0
.text:10000FCC BLNE __7TPtrC16RC7TDesC16
.text:10000FD0 LDMFD SP!, {R4,R5,LR}
.text:10000FD4 BX LR
.text:10000FD8 ; ---------------------------------------------------------------------- -----
...
...
.text:10000684 ; ---------------------------------------------------------------------- -----
.text:10000684
.text:10000684 loc_10000684 ; CODE XREF: start+FB4j
.text:10000684 LDR R1, =a12345678901234
.text:10000688 BL Copy__6TDes16RC7TDesC16 ; TDes16::Copy(TDesC16 const &)
.text:1000068C BX LR
.text:1000068C ; ---------------------------------------------------------------------- -----
.text:10000690 off_10000690 DCD a12345678901234 ; DATA XREF: start:loc_10000684r
.text:10000690 ; "123456789012345"
.text:10000694 ; ---------------------------------------------------------------------- -----
...
...
.text:1000DA80 00 00 00 00 0F 00 00 00 31 00 32 00 33 00 34 00 ....¤...1.2.3.4.
.text:1000DA90 35 00 36 00 37 00 38 00 39 00 30 00 31 00 32 00 5.6.7.8.9.0.1.2.
.text:1000DAA0 33 00 34 00 35 00 00 00
...
Меня почему то еще смущает что Ида конец функции пунктиром отделила после BL. Хотя ведь это не конец еще и будет возврат.
----- Computer Security Laboratory | Сообщение посчитали полезным: |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 09 марта 2008 23:56 · Личное сообщение · #12
Конечно же все,у кого есть опыт с Simbian в курсе того,что бывают приложения - где не весь языковой ресурс содержится в RSC файлах, остальное может храниться в EXEшнике проги. Отсюда вопрос: чем расковырять этот EXEшник для последующей его обработки в "RSC Ed" и, собственно обратной запаковке ?
| Сообщение посчитали полезным: |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 10 марта 2008 05:18 · Личное сообщение · #13
Помидорами за прошлое сообщение не закидывайте,так как только начинаю (на данном этапе занимаюсь руссификацией и модификацией). Ладно, уже нашел что нужно...
| Сообщение посчитали полезным: |
Ранг: 3.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 17 марта 2008 16:59 · Личное сообщение · #14
Могу помочь с тестированием програм, т.к. есть доступ к папкам sys и private на дисках c: и e:
Система Symbian 9.1
| Сообщение посчитали полезным: |
 Ранг: 141.4 (ветеран) Активность: 0.05↘0 Статус: Участник
|
Создано: 17 марта 2008 17:05 · Поправил: intro · Личное сообщение · #15
Deman81:
есть доступ к папкам sys и private на дисках c: и e:
Система Symbian 9.1
это в наши дни не редкость
| Сообщение посчитали полезным: |
Ранг: 3.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 17 марта 2008 17:23 · Личное сообщение · #16
ну если помощь не нужна, то может кто подскажет есть ли какая-нибудь возможность хотябы в теории обхода DRM common solution 1.06?
| Сообщение посчитали полезным: |
 Ранг: 141.4 (ветеран) Активность: 0.05↘0 Статус: Участник
|
Создано: 17 марта 2008 17:43 · Личное сообщение · #17
Deman81:
есть ли какая-нибудь возможность хотябы в теории обхода DRM common solution 1.06?
защита там кроется в DRMCommonConnector.dll, так что замена оригинальной дллки на поправленную версию решит проблему для всего комплекса прог от Psiloc.
| Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 17 апреля 2008 08:22 · Поправил: vixen · Личное сообщение · #18
Подскажите, почему при исследовании Symbian-программ (в частности под UIQ3) в IDA не показывается реальное смещение в исходном файле, в поле адрес значится только " Unknown", виден только относительный адрес? Поиск в файле по HEX значениям через HEX-редактор также не приносит результата, такие значения отсутствуют! В итоге пропатчить файл не представляется возможным  В чем ошибка?
p.s. с программами под series60 все ок, в IDA показаны реальные оффсеты и поиск по HEX коду в программе проходит на ура.
| Сообщение посчитали полезным: |
Ранг: 53.9 (постоянный), 19thx Активность: 0.04↘0 Статус: Участник
|
Создано: 17 апреля 2008 08:30 · Личное сообщение · #19
Распакуй petran'ом для начала. Не важно series60 или UIQ, если файл запакован - ты естественно не найдешь этих байт (IDA пишет "Unknown" на запакованных файлах)
| Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 17 апреля 2008 09:36 · Личное сообщение · #20
Спасибо,помогло
При запаковке в sis-архив нужно ли запаковывать exe-шник?
| Сообщение посчитали полезным: |
 Ранг: 141.4 (ветеран) Активность: 0.05↘0 Статус: Участник
|
Создано: 17 апреля 2008 11:01 · Личное сообщение · #21
Не обязательно, по крайней мере на s60v3. Но можно и запаковать ( petran.exe -compress your.exe ).
| Сообщение посчитали полезным: |
Ранг: 13.0 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 17 апреля 2008 16:47 · Личное сообщение · #22
Добрый вечер всем.
Имеется динамическая библиотека z:\sys\bin\lcdhandlerclient.dll, используемая в приложении Servicemenus.exe. (секретное сервисное меню UIQ3) Похоже с ее помощью идет управление подсветкой клавиатуры (вкл/выкл) в тестах. Имеется ли возможность получения из данной dll-ки файлов dso и lib для использования в c++ программе.
Или существует другой способ программного управления подсветкой клавиатуры? Работа через HAL результата не дает.
| Сообщение посчитали полезным: |
 Ранг: 196.6 (ветеран), 11thx Активность: 0.07↘0.01 Статус: Участник
|
Создано: 18 апреля 2008 00:21 · Личное сообщение · #23
RLibrary::Load грузит длл
| Сообщение посчитали полезным: |
Ранг: 13.0 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 18 апреля 2008 21:50 · Личное сообщение · #24
В папке z:\sys\bin (UIQ3) имеется "куча" файлов .dll .exe в формате : "...not a valid E32Image file". Например: apsclient.dll, aps.exe. Во всяком случае petran их не понимает. И с чем их "едят"?
| Сообщение посчитали полезным: |
 Ранг: 141.4 (ветеран) Активность: 0.05↘0 Статус: Участник
|
Создано: 18 апреля 2008 22:37 · Личное сообщение · #25
Вероятнее всего эти файлы попросту не запакованы petran'ом, на S60v3 такие файлы тоже есть. Причём в иде грузить их надо со стандартным лоадером.
| Сообщение посчитали полезным: |
 Ранг: 196.6 (ветеран), 11thx Активность: 0.07↘0.01 Статус: Участник
|
Создано: 19 апреля 2008 16:07 · Личное сообщение · #26
не совсем - просто эти файлы на самом деле лежат не на диске Z:\, а в роме (т.н. CoreOS), они не являются стандарными dll, так как не имеют секции импорта и релоков, и выполняются методом XIP (execute in place), не загружаясь в оперативную память (хотя конечно, на деле при загрузке симбиана вся область CoreOS грузится в оперативку, благодаря чему оказалось возможным его править, отключить капабилити к примеру).
среди таких файлов есть, к примеру euser.dll, ekern.exe и много других. чтобы изучать такие файлы, нужно грузить в IDA весь CoreOS, а получить его можно с помощью программы, которую можно утянуть с сайта Hexxx'а
| Сообщение посчитали полезным: |
Ранг: 13.0 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 19 апреля 2008 20:49 · Личное сообщение · #27
Тогда такой вопрос: Будет ли RLibrary грузить и "лукапить" функции из подобных dll, и еще нужны ли программе специальные "капсы", превышающие уровень "обычного" сертификата разработчика для загрузки и работы с библиотеками с диска Z и CoreOS.
| Сообщение посчитали полезным: |
 Ранг: 196.6 (ветеран), 11thx Активность: 0.07↘0.01 Статус: Участник
|
Создано: 20 апреля 2008 03:48 · Поправил: [wl] · Личное сообщение · #28
естественно грузятся, поведение в системе ничем не отличается, за исключением того момента, что отладчику искусственно запрещено чтение области РОМ, из-за чего он падает при попытке протрассировать оттуда функции.
загрузить ты сможешь любую длл, но для вызова функций иногда действительно потребуются недоступные капсы (например, DiskAdmin для прямого чтения секторов дисков). А чем так смущают капабилити? мне казалось, что про них уже давно можно смело забыть
| Сообщение посчитали полезным: |
Ранг: 13.0 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 20 апреля 2008 14:35 · Личное сообщение · #29
[wl] - спасибо за дельные советы. Действительно все грузится и даже выполняется  Получается выкл/вкл подсветку клавы P1i и управлять яркостью подсветки дисплея без HAL-a. Для этого достаточно иметь PowerMgmt( предоставляется "стандартным" сертификатом). По свободе будем думать что с этим сделать
| Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 26 мая 2008 10:06 · Поправил: vixen · Личное сообщение · #30
Вопрос: возможно ли вместо вызова функции CTelephonyGetPhoneId() прописать в регист (напр. R0) своё значение IMEI? И как это можно реализовать?
Почитал SDK, не совсем понял. В частности в каком виде возвращается IMEI(iSerialNumber) (строка или число)?
| Сообщение посчитали полезным: |
 Ранг: 467.7 (мудрец), 5thx Активность: 0.27↘0 Статус: Участник Иной :)
|
Создано: 26 мая 2008 12:06 · Личное сообщение · #31
vixen
Мои предыдущие посты как раз по этой теме. Так что читай и зучай.
----- Computer Security Laboratory | Сообщение посчитали полезным: |