PSP хакинг и девелопмент Взгляд изнутри
11.01.2010, 10:24
Сообщение: #1 (859585)
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 58
Сообщений: 47,758
Вы сказали Спасибо: 27,999
Поблагодарили 43,693 раз(а) в 12,397 сообщениях
Сила репутации:
10 Репутация: 42884  
(репутация неоспорима)
Ночью тоже скачал, решил побаловаться =)
Тут не всё так просто.
Mercyful , я так понял ты говоришь по адресу 0х27A424?
Или + 0х08803000 = 0х08A7D424
Вот эта секция вызывает сильные подозрения:
клац
; ======================================================
; Subroutine module_start - Address 0x08A7D420
; Exported in syslib
module_start:
0x08A7D420: 0x27BDFFE0 '...'' - addiu $sp, $sp, -32
0x08A7D424: 0x3C020600 '...<' - lui $v0, 0x600
0x08A7D428: 0xAFB3000C '....' - sw $s3, 12($sp)
0x08A7D42C: 0x00809821 '!...' - move $s3, $a0
0x08A7D430: 0x34440010 '..D4' - ori $a0, $v0, 0x10
0x08A7D434: 0xAFB20008 '....' - sw $s2, 8($sp)
0x08A7D438: 0x00A09021 '!...' - move $s2, $a1
0x08A7D43C: 0xAFB10004 '....' - sw $s1, 4($sp)
0x08A7D440: 0xAFB00000 '....' - sw $s0, 0($sp)
0x08A7D444: 0x3C100000 '...<' - lui $s0, 0x0
0x08A7D448: 0xAFBF0010 '....' - sw $ra, 16($sp)
0x08A7D44C: 0x0E2C93AD '..,.' - jal SysMemUserForUser_35669D4C
0x08A7D450: 0x26110000 '...&' - addiu $s1, $s0, 0
0x08A7D454: 0x3C020003 '...<' - lui $v0, 0x3
0x08A7D458: 0x0E2C93A9 '..,.' - jal sceKernelSetCompilerVersion
0x08A7D45C: 0x34440306 '..D4' - ori $a0, $v0, 0x306
0x08A7D460: 0x1220000C '.. .' - beqz $s1, loc_08A7D494
0x08A7D464: 0x3C090000 '...<' - lui $t1, 0x0
0x08A7D468: 0x0E2C93D1 '..,.' - jal sceKernelGetSystemTimeLow
0x08A7D46C: 0x00000000 '....' - nop
0x08A7D470: 0x000242C0 '.B..' - sll $t0, $v0, 11
0x08A7D474: 0x00483826 '&8H.' - xor $a3, $v0, $t0
0x08A7D478: 0x0E2C938D '..,.' - jal Kernel_Library_293B45B8
0x08A7D47C: 0xAE070000 '....' - sw $a3, 0($s0)
0x08A7D480: 0x8E060000 '....' - lw $a2, 0($s0)
0x08A7D484: 0x00C22826 '&(..' - xor $a1, $a2, $v0
0x08A7D488: 0x00B12026 '& ..' - xor $a0, $a1, $s1
0x08A7D48C: 0xAE040000 '....' - sw $a0, 0($s0)
0x08A7D490 : 0x3C090000 '...<' - lui $t1, 0x0
Последний раз редактировалось ErikPshat; 11.01.2010 в 17:01 .
11.01.2010, 11:51
Сообщение: #2 (859590)
Регистрация: 24.12.2006
Сообщений: 281
Вы сказали Спасибо: 233
Поблагодарили 82 раз(а) в 63 сообщениях
Сила репутации:
1 Репутация: 58  
(скоро придёт к известности)
Сообщение от
ErikPshat
Ночью тоже скачал, решил побаловаться =)
Тут не всё так просто.
Mercyful , я так понял ты говоришь по адресу 0х27A424?
Или + 0х08803000 = 0х08A7D424
Вот эта секция вызывает сильные подозрения:
клац
; ======================================================
; Subroutine module_start - Address 0x08A7D420
; Exported in syslib
module_start:
0x08A7D420: 0x27BDFFE0 '...'' - addiu $sp, $sp, -32
0x08A7D424: 0x3C020600 '...<' - lui $v0, 0x600
0x08A7D428: 0xAFB3000C '....' - sw $s3, 12($sp)
0x08A7D42C: 0x00809821 '!...' - move $s3, $a0
0x08A7D430: 0x34440010 '..D4' - ori $a0, $v0, 0x10
0x08A7D434: 0xAFB20008 '....' - sw $s2, 8($sp)
0x08A7D438: 0x00A09021 '!...' - move $s2, $a1
0x08A7D43C: 0xAFB10004 '....' - sw $s1, 4($sp)
0x08A7D440: 0xAFB00000 '....' - sw $s0, 0($sp)
0x08A7D444: 0x3C100000 '...<' - lui $s0, 0x0
0x08A7D448: 0xAFBF0010 '....' - sw $ra, 16($sp)
0x08A7D44C: 0x0E2C93AD '..,.' - jal SysMemUserForUser_35669D4C
0x08A7D450: 0x26110000 '...&' - addiu $s1, $s0, 0
0x08A7D454: 0x3C020003 '...<' - lui $v0, 0x3
0x08A7D458: 0x0E2C93A9 '..,.' - jal sceKernelSetCompilerVersion
0x08A7D45C: 0x34440306 '..D4' - ori $a0, $v0, 0x306
0x08A7D460: 0x1220000C '.. .' - beqz $s1, loc_08A7D494
0x08A7D464: 0x3C090000 '...<' - lui $t1, 0x0
0x08A7D468: 0x0E2C93D1 '..,.' - jal sceKernelGetSystemTimeLow
0x08A7D46C: 0x00000000 '....' - nop
0x08A7D470: 0x000242C0 '.B..' - sll $t0, $v0, 11
0x08A7D474: 0x00483826 '&8H.' - xor $a3, $v0, $t0
0x08A7D478: 0x0E2C938D '..,.' - jal Kernel_Library_293B45B8
0x08A7D47C: 0xAE070000 '....' - sw $a3, 0($s0)
0x08A7D480: 0x8E060000 '....' - lw $a2, 0($s0)
0x08A7D484: 0x00C22826 '&(..' - xor $a1, $a2, $v0
0x08A7D488: 0x00B12026 '& ..' - xor $a0, $a1, $s1
0x08A7D48C: 0xAE040000 '....' - sw $a0, 0($s0)
0x08A7D490: 0x3C090000 '...<' - lui $t1, 0x0
Эта секция полная?
Похоже на подготовку данных к анализу (хэш или подпись) — это из EBOOT.PBP Kingdom Hearts?
11.01.2010, 16:59
Сообщение: #3 (859651)
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 58
Сообщений: 47,758
Вы сказали Спасибо: 27,999
Поблагодарили 43,693 раз(а) в 12,397 сообщениях
Сила репутации:
10 Репутация: 42884  
(репутация неоспорима)
ALgraFx , да, это полная секция. Ну разумеется далее идут подсекции.
Происходит вот что:
Из этой позиции: "0x08A7D424: 0x3C020600 '...<' - lui $v0, 0x600 " (я их выделил красным)
по функции $v0 берётся в память версия прошивки 0х600 (в хексе записывается как 0x3C020600 )
С помощью вызова функции модуля памяти SysMemUserForUser_35669D4C производится вся эта канитель.
С помощью модуля сравнения версии sceKernelSetCompilerVersion , производится сравнение версии ядра установленной прошивки с версией, которая записана в первом пункте.
Если версия больше или равно указанной в первом пункте, то программа продолжает выполнение по адресу в следующей секции 0x08A7D460: 0x1220000C '.. .' - beqz $s1, loc_08A7D494 , то есть эта ведь секция кончается адресом памяти 0x08A7D490 , а следующая идёт с адресом loc_08A7D494 , куда осуществляется переход.
Адресация идёт относительная, поэтому чтобы вычислить положение в хексе, нужно от указанного адреса вычитать 0х08803000.
Mercyful , ну ты спроси у товарища, на правильном ли мы пути...
Последний раз редактировалось ErikPshat; 11.01.2010 в 17:10 .
Этот пользователь сказал Спасибо ErikPshat за это полезное сообщение:
11.01.2010, 17:58
Сообщение: #4 (859668)
Модель консоли: 1008
Прошивка: 6.60 PRO-B10
Другие консоли: PSV 1008 (3.60 変革), 1108 (3.65 Ensō), 1006 (3.68 h-encore), N3DSXL, N2DS, PSP
Регистрация: 07.11.2006
Адрес: Россия
Сообщений: 282
Вы сказали Спасибо: 31
Поблагодарили 308 раз(а) в 141 сообщениях
Сила репутации:
1 Репутация: 308  
(как роза среди колючек)
ErikPshat
в коде 0x08A7D424: 0x3C020600 '...<' - lui $v0, 0x600 патчером/декриптором заменяется на 0x08A7D424: 0x3C020500 '...<' - lui $v0, 0x500 так что ты на верном пути, только джампы там трогать не нужно, ну и проверка эта не единственная конечно, а только та, что автоматически патчится декриптором
Передастом быть не люблю, но ради благого дела!
Этот пользователь сказал Спасибо Mercyful за это полезное сообщение:
11.01.2010, 19:44
Сообщение: #5 (859688)
Регистрация: 24.12.2006
Сообщений: 281
Вы сказали Спасибо: 233
Поблагодарили 82 раз(а) в 63 сообщениях
Сила репутации:
1 Репутация: 58  
(скоро придёт к известности)
ErikPshat ,
А стэк (addiu $sp,$sp,-32 и обилие sw* ) для какой функции(структуры) используется?
11.01.2010, 16:29
Сообщение: #6 (859643)
Модель консоли: 1008
Прошивка: 6.60 PRO-B10
Другие консоли: PSV 1008 (3.60 変革), 1108 (3.65 Ensō), 1006 (3.68 h-encore), N3DSXL, N2DS, PSP
Регистрация: 07.11.2006
Адрес: Россия
Сообщений: 282
Вы сказали Спасибо: 31
Поблагодарили 308 раз(а) в 141 сообщениях
Сила репутации:
1 Репутация: 308  
(как роза среди колючек)
Сообщение от
ErikPshat
Mercyful, я так понял ты говоришь по адресу 0х27A424?
Или + 0х08803000 = 0х08A7D424
Ты же знаешь, что в данной области я не соображаю. Сужу со слов опытного товарища и по играм, которые имеют аналогичную защиту.
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Текущее время: 12:23 . Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод:
zCarot
PSPx Forum - Сообщество фанатов игровых консолей.