- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
void sensor_init_regctl(void)
{
int iVar1;
/* Reading /rom/custom_setting_gm.ini
Setting I2CPortChange val from file */
custom_setting_gm_get_I2C();
/* Checking for I2CPortChange in /rom/custom_setting_gm.ini
(default = 1) */
iVar1 = GET_I2CPortChange_glob();
if (iVar1 != 0) {system("rmmod gpioi2c"); usleep(50000);Regctl_main_function();system("insmod /npc/patch/gpioi2c2.ko");} return;}
void Regctl_main_function(void)
{
uint uVar1; uVar1 = Regctl_set_ioctl5(0x90c00000,0x54);
Regctl_set_2_dwWriteRegVal(-0x6f400000,0x54,uVar1 & 0xfffc3fff | 0x28000);
return;
}
int Regctl_set_ioctl5(ulong param_1,ulong param_2)
{
int __fd; int iVar1; ulong local_20; ulong uStack28; int *local_10; int iStack12;
local_10 = &iStack12;
local_20 = param_1;
uStack28 = param_2;
__fd = pl_open_file("/dev/regctl",2,"dwReadRegVal",0x1b);
if (__fd == 0) {
printf("%s: error: open dev/misc/regctl fail \n","dwReadRegVal");
}
else {
iVar1 = ioctl(__fd,5,&local_20);
if (iVar1 == -1) {
printf("%s: error: regctl ioctl fail \n","dwReadRegVal");
pl_close_file(__fd,"dwReadRegVal",0x26);
__fd = 0;
}
else {
pl_close_file(__fd,"dwReadRegVal",0x2a);
__fd = *local_10;
}
}
return __fd;
}
int Regctl_set_2_dwWriteRegVal(int param_1,int param_2,int param_3)
{
int __fd; int iVar1; int local_24 [2];int local_1c; int local_18;int *local_c; local_c = local_24; local_24[0] = param_3; local_1c = param_1; local_18 = param_2;
__fd = pl_open_file("/dev/regctl",2,"dwWriteRegVal",0x3c);
if (__fd == 0) {
printf("%s: error: open dev/misc/regctl fail \n","dwWriteRegVal");
}
else {
iVar1 = ioctl(__fd,1,&local_1c);
if (iVar1 == -1) {
printf("%s: error: regctl ioctl fail \n","dwWriteRegVal");
pl_close_file(__fd,"dwWriteRegVal",0x49);
__fd = 0;
}
else {
pl_close_file(__fd,"dwWriteRegVal",0x4d);
__fd = 1;
}
}
return __fd;
}
Помогите разреверсить код из прошивки камеры Rubetek RV-3414 (основана на SoC GrainMedia GM8136). Это код из Ghidra. Интересует функция Regctl_main_function.
dump из strace:
open("/dev/regctl", O_RDWR) = 3 <0.000901>
ioctl(3, _IOC(_IOC_NONE, 0, 0x5, 0), 0x7eee2c18) = 0 <0.000308>
close(3) = 0 <0.000256>
open("/dev/regctl", O_RDWR) = 3 <0.000422>
ioctl(3, FIBMAP, 0x7eee2c1c) = 0 <0.000105>
close(3)
local_20 и uStack28 - это struct?
a0a1 10.12.2019 22:30 # 0
a0a1 11.12.2019 00:28 # 0
https://drive.google.com/file/d/0B40VEajjRUcHTmNuN2N0R3dWaUk/view?usp=sharing
https://mega.nz/#!Ml9mhQwJ!h4WUydoOc7gGpUSkNCYpzd9uAOyUl oHHMvikItL2FS8
https://www.dropbox.com/s/hnh8cydk4m2ab08/GM8136%20SDK%20release%20v1.0.rar?dl=0
http://pan.baidu.com/share/link?uk=2553453276&shareid=3324610145
guest8 10.12.2019 22:49 # −999
bormand 11.12.2019 05:38 # 0
a0a1 11.12.2019 13:05 # −1
guestinxo 10.12.2019 22:52 # 0
guest8 10.12.2019 22:54 # −999
KaKou-To_xyu 10.12.2019 22:55 # 0
a0a1 10.12.2019 23:00 # +1
KaKou-To_xyu 10.12.2019 23:13 # −2
a0a1 10.12.2019 23:21 # −1
MPA3uIII 10.12.2019 23:23 # −4
XYPO3BO3 10.12.2019 23:43 # +1
https://github.com/NationalSecurityAgency/ghidra
bormand 11.12.2019 05:32 # +1
gost 11.12.2019 06:38 # +1
Интересно, когда все долбоёбы поймут, что блочить по geoip — затея космической глупости?
mvngr 12.12.2019 14:35 # −1
bormand 12.12.2019 14:39 # −1
XYPO3BO3 11.12.2019 07:33 # 0
KaKou-To_xyu 11.12.2019 18:52 # −1
Сразу видно, что профессионалы своего дела.
a0a1 11.12.2019 18:55 # −1
KaKou-To_xyu 11.12.2019 19:08 # −1
KaKou-To_xyu 10.12.2019 22:53 # −1
sizeof(ulong) == 4? Скорее всего 3 оставшихся бата от uStack28 для выравнивания.
ЗЫ. бинарь лень разбирать.
MPA3uIII 10.12.2019 23:23 # −4
На, заебал.
a0a1 10.12.2019 23:30 # −1
uint uVar1; uVar1 = Regctl_set_ioctl5(0x90c00000,0x54); printf("uVar1: %d\n", uVar1);
Если заменить
на
то: в первом случае uVar1 - 0, в другом - положительная цифра
MPA3uIII 10.12.2019 23:35 # −2
Покайся, тут свои.
a0a1 10.12.2019 23:33 # 0
bormand 11.12.2019 05:39 # 0
guest8 11.12.2019 05:43 # −999
bormand 11.12.2019 05:51 # 0
guest8 11.12.2019 06:19 # −999
bormand 11.12.2019 08:05 # 0
Не, там всё намного проще. Полистай книжку про прыщедрова.
guest8 11.12.2019 10:39 # −999
inkanus_gray 11.12.2019 22:45 # −1
a0a1 10.12.2019 22:56 # −1
Ссылка на бинарь: http://wdfiles.ru/6h0f
На Pastebin (где код из Ghidra, функции, которая принимает ioctl): https://pastebin.com/raw/ctZ0dHze
Весь код нужен для инициализации сенсора SC2135.
a0a1 10.12.2019 23:17 # −1
MPA3uIII 10.12.2019 23:13 # −5
Давай снимем ДАМП!
MPA3uIII 10.12.2019 23:14 # −6
g g
o / \ \ / \ o
a| | \ | | a
t| `. | | : t
s` | | \| | s
e \ | / / \\\ --__ \\ : e
x \ \/ _--~~ ~--__| \ | x
* \ \_-~ ~-_\ | *
g \_ \ _.--------.______\| | g
o \ \______// _ ___ _ (_(__> \ | o
a \ . C ___) ______ (_(____> | / a
t /\ | C ____)/ \ (_____> |_/ t
s / /\| C_____) | (___> / \ s
e | ( _C_____)\______/ // _/ / \ e
x | \ |__ \\_________// (__/ | x
* | \ \____) `---- --' | *
g | \_ ___\ /_ _/ | g
o | / | | \ | o
a | | / \ \ | a
t | / / | | \ |t
s | / / \__/\___/ | |s
e | / | | | |e
x | | | | | |x
* g o a t s e x * g o a t s e x * g o a t s e x *
KaKou-To_xyu 10.12.2019 23:16 # −1
MPA3uIII 10.12.2019 23:17 # −6
guestinxo 10.12.2019 23:20 # −1
MPA3uIII 10.12.2019 23:22 # −6
inkanus_gray 11.12.2019 22:45 # −1
softpawww 12.12.2019 09:57 # +1
Что, если нет модерации на ресурсе, значит, надо тут же снимать штаны и начинать срать во все стороны?
bormand 12.12.2019 11:14 # +1
softpawww 12.12.2019 14:31 # −1
Alice-Goth 12.12.2019 12:43 # +1
guestinxo 12.12.2019 12:50 # +1
bormand 12.12.2019 12:50 # +1
guestinxo 12.12.2019 12:58 # +2
Alice-Goth 12.12.2019 13:22 # −1
guestinxo 12.12.2019 15:52 # −1
Antifriz_otrabotanyi 12.12.2019 14:44 # −1
Alice-Goth 12.12.2019 12:55 # −1
guest8 12.12.2019 11:17 # −999
Alice-Goth 12.12.2019 12:38 # −1