Только что поставил новую версию от 24 декабря =) Уже месяц юзал ноябрьскую версию.... Вчера первый раз выскочила гнустная ошибка "Runtime overflow -9". Проблема в том, что я не помню из-за чего она вылетает.... В ранних версиях очень часто вылетала... В ноябрьской только 1 раз..... Так вот есть пара хотелок на прогу =) 1) AlexeyK Можно ли отрубить создание bak файла при проекте патчей? 2) Можно ли сделать, чтобы BinEdit предупреждал о наложении кода.... Текстом будет не понятно, я попробую кодом..... Вот мне надо допустим сделать патч пароль на мои пункты . я делаю допустим пароль на фотки, видео, музыку...... С телефоне этой функции нет, след. я буду использовать свободные адреса... как свободные адреса я буду использовать ненужный язык.... Так вот - я беру три адреса.... Вот код в компиляторе:
.equ my_code 0x10BFB004
.equ my_code2 0x10BFB014
.equ my_code3 0x10BFB024
.equ check_password 0x102af5ec
.equ insert_my_code 0x10C0EC40
.equ insert_my_code2 0x116FEC78
.equ insert_my_code3 0x10651C00
.start insert_my_code
.mcc mcc_transf 0 0 0 0 my_code
.start my_code
.mcc mcc_call 0 0 0 0 check_password
.mcc MCC_TASK 0x21 0x10 0x2B
.mcc mcc_transf 0 0 0 0 insert_my_code+16
;--------------------------------------------------
.start insert_my_code2
.mcc mcc_transf 0 0 0 0 my_code2
.start my_code2
.mcc mcc_call 0 0 0 0 check_password
.mcc MCC_IF 0x2 0x1F 0x4 0x1
.mcc mcc_transf 0 0 0 0 insert_my_code2+16
;--------------------------------------------------
.start insert_my_code3
.mcc mcc_transf 0 0 0 0 my_code3
.start my_code3
.mcc mcc_call 0 0 0 0 check_password
.mcc MCC_IF 0x2 0x1F 0x4 0x1
.mcc mcc_transf 0 0 0 0 insert_my_code3+16
Так вот - я не учитывал что на каждый свободный адрес у меня пойдет 48 байт, а взял 16. то есть с 0x10BFB004 по 0x10BFB014... В результате компилирования патча -у меня происходит наложение адресов..... то есть ->
10BFB004 1B 00 0000 0000 0000 ECF52A10 0000 0000 Вызов подпрограммы 0x102AF5EC
10BFB014 1B 00 0000 0000 0000 ECF52A10 0000 0000 Вызов подпрограммы 0x102AF5EC
10BFB024 1B 00 0000 0000 0000 ECF52A10 0000 0000 Вызов подпрограммы 0x102AF5EC
10BFB034 18 02 1F00 0400 0100 00000000 0000 0000 Если x1=2 x2=31 x3=4 то переход на 0x0
10BFB044 1C 00 0000 0000 0000 101C6510 0000 0000 Переход на адрес 0x10651C10
То есть будет работать работать только третий пункт. А если бы я учитывал наложение, получилось бы ->
10BFB004 1B 00 0000 0000 0000 ECF52A10 0000 0000 Вызов подпрограммы 0x102AF5EC
10BFB014 17 21 1000 2B00 0000 00000000 0000 0000 Выполнить 0x21 x2=16 x3=43 x4=0 x5=0 x6=0
10BFB024 1C 00 0000 0000 0000 50ECC010 0000 0000 Переход на адрес 0x10C0EC50
10BFB034 1B 00 0000 0000 0000 ECF52A10 0000 0000 Вызов подпрограммы 0x102AF5EC
10BFB044 18 02 1F00 0400 0100 00000000 0000 0000 Если x1=2 x2=31 x3=4 то переход на 0x0
10BFB054 1C 00 0000 0000 0000 88EC6F11 0000 0000 Переход на адрес 0x116FEC88
10BFB064 1B 00 0000 0000 0000 ECF52A10 0000 0000 Вызов подпрограммы 0x102AF5EC
10BFB074 18 02 1F00 0400 0100 00000000 0000 0000 Если x1=2 x2=31 x3=4 то переход на 0x0
10BFB084 1C 00 0000 0000 0000 101C6510 0000 0000 Переход на адрес 0x10651C10
Плиз, ты не мог бы добавить в компиляторе проверку на наложение адресов? Было бы просто замечательно 3) Можно ли сделать, чтобы можно было искать неизвестный код? ща объясню =) Например мне нужно найти, где есть с окно с определенным текстовым индексом.... Возьмем допустим фразу - BT деактивирован, его индекс - 0118. переворачиваем - получаем 1801. так вот, если я не знаю типа окна, в котором содержится текстовый индекс мой... то есть мне надо найти любой код, в котором от 9 по 13 символ будет мой перевернутый индекс. а если я просто нажимаю искать 1801 - прога будет искать только те адреса, которые начинаются на 1801.... Так вот можно было бы сделать, чтобы была возможность искать неизвестную строку. -> ?? ?? ???? 1801 .... Тогда прога мне бы выдала и окна вопросов, например 4900 0000 1801 , и простые окна.... Надеюсь объяснил понятно)))) =)