Chief-NET

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Chief-NET » Экстрим хакинг » Мой проект (Mega Drive/Genesis)


Мой проект (Mega Drive/Genesis)

Сообщений 21 страница 40 из 42

21

Ну, например, буквально вчера сталкнулся с ЗЫЧевским асмом. Вот процедурка с аналогами инструкций на Дельфи справа (декриптует данные в Сайлент Хилле):

Код:
a0: Куда декриптовать
a1: Откуда
a2: Размер

	ADDU  a3,r0,r0; a3:=r0*2
	SRA  a2,a2,02; a2:=a2 SHR 2
	BLEZ	a2,80010B1C; If a2<=0 Then GoTo 80010B1C (JR ra)	
	ADDU	v1,a3,r0        ; v1:=a3+r0
	LUI  t1,0130; t1:=01300000
	ORI  t1,t1,9125; t1:=t1 OR 9125
	LUI  t0,03A4; t0:=03A40000
	ORI  t0,t0,52F7; t0:=t0 OR 52F7
begin:
	ADDU  v0,a3,t1; v0:=a3+t1
	MULT  v0,t0          ; Lo:=v0*t0
	ADDIU  v1,v1,0001; Inc(v1)
	LW  	v0,0000(a1); Load v0 on a1
	ADDIU	a1,a1,0004; Inc(a1,4)
	MFLO	a3,Lo          ; a3:=Lo
	XOR  v0,v0,a3; v0:=v0 XOR a3
	SW  v0,0000(a0); Write v0 on a0
	SLT  v0,v1,a2; v0=(v1<a2)
	BNE  v0,r0,begin; If r0<>v0 Then GoTo begin
	ADDIU	a0,a0,004; Inc(a0,4)

А вот уже мной написанная процедура на Дельфи:

Код:
Procedure SHDecrypt(var Buf: Pointer; Size: Integer);
var Pos,Mn: Integer; I: ^Integer;
begin
  Mn:=0; Pos:=0;
  I:=Addr(Buf^);
  While Pos<Size div 4 do
  begin
    Mn:=(Code2+Mn)*Code1;
    I^:=I^ XOR Mn;
    Inc(I); Inc(Pos);
  end;
end;

Основная проблема заключалась в том, чтобы понять, что делает процедура, а не слепо переписывать инструкции, переводя их на код Дельфи.

Даже назначения инструкций знать вовсе необязательно - справочник в зубы - и вперёд :)

Отредактировано HoRRoR (2007-10-21 09:48:44)

22

Вот патч убирающий защиту рома, чтобы можно было редактировать ром.

  http://dump.ru/files/n/n4752629526/

Народ как мне скачать патч, или просто скажи адрес и код, я сам ставлю. Ссылка умерла. :(

23

001ff0ea : 4E714E714E714E714E714E714E

24

001ff0ea : 4E714E714E714E714E714E714E

Это NOP NOP NOP NOP NOP NOP NOP? :)

25

да

26

Кстати каким дебаггером пользуешься? Gens или есть нормальные?

27

Gens KMod.

28

Можешь сцыль дать? :) А то я вот решил расширить своё познание в асме с PSX и GBA до ещё и NES и SEGA :)

29

Ну, если ты знаешь асм GBA, то тебе труда не составит разобраться в сеговском :)

Можешь дать ссылку на какой-нибудь док по GBA-шному асму, а-то смотрел я в дебаге, но эти MOV, CALL и т.п. для меня тёмный лес :(, куда проще NES-овские и SNES-овские LDA, STA да JMP :)

30

http://www.spritesmind.net/_GenDev/

31

alex_231, http://www.portabledev.com/pages/gba/tu … gbatek.php - лучшая дока по ГБА :) Правда она там фреймом, но вытащить труда не составит :)
evgeny, спасибо :)

32

ЁПРСТ, я же оставлял ссылку на этот эмуль в одной из тем.... щас.... вот
Документы внутреннего пользования

33

Эээ. Народ, я попросил дёрнуть из игры текст, а то я не умею нифига. Конечно, можно и самому в хекс-редакторе попробовать, но я не думаю, что у меня из этого выйдет что-то хорошее :lol: (вспоминая kupo и Скуби Ду, понимаю, что переводить буду несколько месяцев :huh: ). Сразу встаёт вопрос, как сделать фразы перевода длиннее оригинала?

Отредактировано splinker (2007-10-25 20:16:56)

34

А при чём здесь я и Скуби??? Переводу всего год и так как я начал делать этот перевод совсем лузером,то не мог даже шрифт найти и даже не мог подумать что это шрифт))) О поинтерах даже говорить не буду.

Мне например легче в хекс-редакторе переводить, меня сначала друг учил через покепер переводить, но потом мне надоело то, что у меня всё время не хватало места. И я как то попробовал перевести в хекс-редакторе и у меня получилось(хотя я думал что не получится), потом узнал что в него можно загружать таблицы(говорю о Translhextions), так я ещё больше полюбил его.

А на счет вопроса, то тут ответ прост, найти поинтеры. Я вроде где-то видел в РОМе что-то похожее на поинтеры, позже посмотрю и отпишусь если меня не опередят.

Отредактировано kupo (2007-10-25 21:25:00)

35

Мне слово "пойнтер" ни о чём не говорит :( . Ндя... Надо бы почитать доки... Какие посоветуете? Шедевровские?

Отредактировано splinker (2007-10-25 21:33:35)

36

Есессно, все там учились. Можешь еще и у нас про поинтеры почитать :) Поинтеры

Отредактировано alex_231 (2007-10-26 03:01:49)

37

Да текст там виден невооруженным глазом, между блоками текста поинтеры. Чего там вытаскивать? Можно даже открыть файл блокнотом и скопировать из него тексты в другой файл.

38

А можно в Translhextion нажать кнопку... вроде F5 и откроется блокнот, и там через несколько секунд, появится дамп хекс-редактора.

39

Шеф обещал мне скоро скинуть текст для перевода. :lol: Ура!

Отредактировано splinker (2007-12-24 19:12:36)

40

Народ! Подскажите что там за шрифт, один я нашел но при модификации он нигде себя не обнаружил. Насчет Джунглс страйка они не одинаковые по структуре? Жду любой информации.


Вы здесь » Chief-NET » Экстрим хакинг » Мой проект (Mega Drive/Genesis)