Някаква идея за реверсинжинеринг на този файл? Програма писана на джава е.
Всичко за правенето на уеб страници и езици за програмиране.
ivanovbg
- майстор
5 мнения в "Java програмиране"
Gnus
- специалист
- Мнения: 634
$ file program.binПоказва го като .so файл
program.bin: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, stripped
Като го рагледах, стигнах до извода, че това е някаква програма за автодиагностика, която си свалил или купил оттук: http://www.x431.com .
Как стигна до извода, че е джава и за какво ти е да я реверс-инженерваш?
ivanovbg
- майстор
- Мнения: 4333
Позна
Как се отваря .so файла да се види кода? Искам да мога да правя промени в него. Отварям го с 7зип и виждам кое искам да променя, но после няма как да го сглобя.
Нямам проблеми с отключването,а искам да си оправям някои бъгове, вместо да чакам китайците.
Със самото апк вече се оправих. Подредих си иконките, увеличих си броя на показваните величини. Заключих си го към кутийката и други екстри.
Можеш ли да помогнеш? Ако искаш на лични.
Как се отваря .so файла да се види кода? Искам да мога да правя промени в него. Отварям го с 7зип и виждам кое искам да променя, но после няма как да го сглобя.
Нямам проблеми с отключването,а искам да си оправям някои бъгове, вместо да чакам китайците.
Със самото апк вече се оправих. Подредих си иконките, увеличих си броя на показваните величини. Заключих си го към кутийката и други екстри.
Можеш ли да помогнеш? Ако искаш на лични.
ivanovbg
- майстор
- Мнения: 4333
Някаква идея какво точно прави тази подпрограма:
// Address range: 0x108c2 - 0x108db
int32_t function_108c2(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7) {
int32_t v1 = (int32_t)a1;
*a1 = v1;
*(int32_t *)(v1 + 4) = a3;
*(int32_t *)(v1 + = a4;
*(int32_t *)(v1 + 12) = g226;
*(int32_t *)(v1 + 16) = g227;
*(int32_t *)(v1 + 20) = g228;
*(int32_t *)(v1 + 24) = g229;
return v1 + 28;
}
// Address range: 0x108dc - 0x10997
int32_t cal_digest_context(int32_t a1, char * a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t v1 = (int32_t)a2;
int32_t v2 = v1; // R1
int32_t v3 = g228; // 0x108dc
int32_t v4 = g229; // 0x108dc
int32_t v5 = 1; // R5
g228 = 142;
g229 = 2;
int32_t v6 = 92; // R3
int32_t v7 = v1; // 0x10906
int32_t v8 = 1; // 0x10902
int32_t v9 = 142; // 0x108fe
int32_t v10 = 2; // 0x10904
int32_t v11 = &g6; // 0x10902
int32_t v12 = 174; // 0x108f4
int32_t v13 = 92; // 0x108f4
// branch -> 0x108f4
while (true) {
int32_t v14 = v13 ^ v12; // 0x108f4
int32_t v15 = (int32_t)*(char *)(v11 + 19) ^ v14; // 0x108f8
char v16 = v15;
if (v10 == 1) {
// 0x108fe
v16 = v15 ^ v9;
// branch -> 0x10900
}
// 0x10900
g229 = v10 - 1;
*(char *)v7 = v16;
int32_t v17 = g228; // 0x10908
int32_t v18 = v5 + v2; // 0x1090a
v2 = v18;
int32_t v19 = v6 - 1; // 0x1090c
v6 = v19;
int32_t v20 = g229; // 0x1090e
int32_t v21 = v20; // 0x108fa5
if (v20 == 0) {
// 0x10912
g229 = 2;
v21 = 2;
// branch -> 0x10914
}
int32_t v22 = v17 + 169; // 0x10914
g228 = v22;
if (v19 == 0) {
// 0x1091a
g220 = v1;
g228 = v3;
g229 = v4;
return 0;
}
int32_t v23 = v11 + v8;
v7 = v18;
v8 = v5;
v9 = v22;
v10 = v21;
v11 = v23;
v12 = v14 + 188 ^ v17;
v13 = v19;
// branch -> 0x108f4
}
}
// Address range: 0x108c2 - 0x108db
int32_t function_108c2(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7) {
int32_t v1 = (int32_t)a1;
*a1 = v1;
*(int32_t *)(v1 + 4) = a3;
*(int32_t *)(v1 + = a4;
*(int32_t *)(v1 + 12) = g226;
*(int32_t *)(v1 + 16) = g227;
*(int32_t *)(v1 + 20) = g228;
*(int32_t *)(v1 + 24) = g229;
return v1 + 28;
}
// Address range: 0x108dc - 0x10997
int32_t cal_digest_context(int32_t a1, char * a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t v1 = (int32_t)a2;
int32_t v2 = v1; // R1
int32_t v3 = g228; // 0x108dc
int32_t v4 = g229; // 0x108dc
int32_t v5 = 1; // R5
g228 = 142;
g229 = 2;
int32_t v6 = 92; // R3
int32_t v7 = v1; // 0x10906
int32_t v8 = 1; // 0x10902
int32_t v9 = 142; // 0x108fe
int32_t v10 = 2; // 0x10904
int32_t v11 = &g6; // 0x10902
int32_t v12 = 174; // 0x108f4
int32_t v13 = 92; // 0x108f4
// branch -> 0x108f4
while (true) {
int32_t v14 = v13 ^ v12; // 0x108f4
int32_t v15 = (int32_t)*(char *)(v11 + 19) ^ v14; // 0x108f8
char v16 = v15;
if (v10 == 1) {
// 0x108fe
v16 = v15 ^ v9;
// branch -> 0x10900
}
// 0x10900
g229 = v10 - 1;
*(char *)v7 = v16;
int32_t v17 = g228; // 0x10908
int32_t v18 = v5 + v2; // 0x1090a
v2 = v18;
int32_t v19 = v6 - 1; // 0x1090c
v6 = v19;
int32_t v20 = g229; // 0x1090e
int32_t v21 = v20; // 0x108fa5
if (v20 == 0) {
// 0x10912
g229 = 2;
v21 = 2;
// branch -> 0x10914
}
int32_t v22 = v17 + 169; // 0x10914
g228 = v22;
if (v19 == 0) {
// 0x1091a
g220 = v1;
g228 = v3;
g229 = v4;
return 0;
}
int32_t v23 = v11 + v8;
v7 = v18;
v8 = v5;
v9 = v22;
v10 = v21;
v11 = v23;
v12 = v14 + 188 ^ v17;
v13 = v19;
// branch -> 0x108f4
}
}
Тема "Java програмиране" | Включи се в дискусията:
Сподели форума:
Бъди информиран. Следвай "Направи сам" във Facebook:
Намери изпълнител и вдъхновения за дома. Следвай MaistorPlus във Facebook:
Имаш нужда от подходящ професионалист за дома?
- Преустройство, ремонт и реновиране
- ↳ Вашите ремонти
- ↳ Кухня
- ↳ Баня
- ↳ Дневна
- ↳ Спалня
- ↳ Детска
- ↳ Градина
- ↳ Коридор
- ↳ Тераса и балкон
- Направи сам
- ↳ Направи сам
- ↳ Ремонтирай сам
- ↳ Къде е по-евтино?
- ↳ Дърводелство
- ↳ Ел. инструменти
- ↳ Металообработване
- ↳ Конкурс "Направи сам 2012"
- Строителство
- ↳ Всичко за вилата
- ↳ Къщи
- ↳ Саниране
- ↳ Хидроизолация
- ↳ Пасивни и нискоенергийни сгради
- Сухо строителство
- ↳ Окачени тавани
- ↳ Преградни стени и предстенни обшивки
- ↳ Сухи и повдигнати подове
- ↳ Декоративни елементи - колони, трегери, сводове и др.
- ↳ Всичко за гипскартона и гипсфазера
- Въпроси и Отговори
- ↳ Полезни съвети
- ↳ Автомобили
- ↳ Партньори
- ↳ Боядисване и Декориране
- ↳ Вентилация, климатици и термопомпи
- ↳ Водоснабдяване и канализация.
- ↳ Всичко за ремонта
- ↳ Електротехника
- ↳ Отопление
- ↳ Газификация
- ↳ Електроника и Схеми
- ↳ Газобетон
- ↳ От всичко по малко
- ↳ Компютри и периферия
- ↳ Уеб дизайн, PHP, MySQL, JavaScript, HTML..
- ↳ Мобилни устройства, GSM-и
- ↳ Нека се запознаем
- ↳ Recycle Bin
- Статии
- ↳ Практични решения
- ↳ Качване на снимки
- ↳ Какви статии искате?
- ↳ Готварство, туршии и зимнина
- ↳ Отмора и шеги
- ↳ От нищо нещо
- ↳ Не е за вярване
- ↳ Литература
- ↳ Връзки към Интересни сайтове
- Магазин
- ↳ Препоръки и Мнения за он-лайн магазина
- ↳ Крадeни инструменти !!!