| imho.ws |
![]() |
|
|
|
# 1 |
|
Member
Регистрация: 11.04.2003
Сообщения: 213
![]() ![]() |
про 16-ричные коды
Наткнулся тут на довольно старую, но до сих пор интересную статейку, о том как пробить себе права админа на системах семейства NT, кому интересно - _http://www.madalf.ru/doc2/a13.shtm, но некоторых вещей в ней не понял.
"Существуют еще одна интересная возможность обойти проверку пароля. Сама проверка пароля осуществляется посредством файлика (библиотеки) MSV1_0.DLL. Нам надо найти строчку с командой cmp eax, 10h или ее шестнадцатиричный эквивалент 83 F8 10 Такая строчка встречается 5 раз по данным смещения. ... Данная проверка смещения 1F6C (.75B81F6C) - это проверка пароля для входа. Нам нужно лишь поправить эту проверку убрав ее и поставив переход: ...." внимание вопрос - что есть "данные смещения", "переход" и как этот переход ставится? З.Ы.: основы что такое шестнадцатеричная система счисления представляю, объяснять не надо.
__________________
Чтобы сделать что-то невозможное, надо не знать, что это - невозможно. |
|
|
|
|
# 2 |
|
KpTeaM
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
vuk
>что есть "данные смещения", "переход" и как этот переход ставится? Смещение в файле относительно начала его. Переход - это команда ассемблера записанная по данному адресу(смещение его от начала файла указано). Не знаю как проще объяснить :)
__________________
Над струнами вен моих Лезвия осени, Их сталь леденящая В просинь рук просится... ©Темнозорь |
|
|
|
|
# 3 |
|
Member
Регистрация: 11.04.2003
Сообщения: 213
![]() ![]() |
хм... ну хоть слегка просветил. теперь как переход задаётся. вот есть у меня файл открытый в hex editor
"000...00: 99 00 FA 1C .... | slkjfdls 000...10: 93 E0 BC 17 .... | asddww" те 000...10 это у нас начальное смещение? что есть виртуальное смещение? как задаётся переход: если на примере, то по статье (см место в статье = цитата из 1 мессаги) забиваем нулями строку 000 ... 1F6C: (таблица 1), а если предположить что в таблице 2: 1 столбец - смещение, 2 ст - комманда, 3ст - 16ричный эквивалент коммадны, то в строках 000 ... 1F9E: задаем "хх хх 90 хх .... | (без изменений)" так? тогда вопрос, где конкретно ставится это "90"?
__________________
Чтобы сделать что-то невозможное, надо не знать, что это - невозможно. Последний раз редактировалось vuk; 05.09.2005 в 11:46. |
|
|
|
|
# 4 |
|
KpTeaM
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
>те 000...10 это у нас начальное смещение?
Да. >что есть виртуальное смещение? Почитай описание PE-формата exe-файлов. Если кратко, то это адрес байта, который он будет занимать в памяти после загрузки файла. >тогда вопрос, где конкретно ставится это "90"? Указано же - 1F9E.
__________________
Над струнами вен моих Лезвия осени, Их сталь леденящая В просинь рук просится... ©Темнозорь |
|
|
|
|
# 5 |
|
Member
Регистрация: 11.04.2003
Сообщения: 213
![]() ![]() |
"где конкретно" это в каком месте строки с этим смещением, где между иксами?
или всю остальную строку надо нулями забивать? бред... кажется...
__________________
Чтобы сделать что-то невозможное, надо не знать, что это - невозможно. |
|
|
|
|
# 6 |
|
KpTeaM
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
vuk
>"где конкретно" это в каком месте строки с этим смещением, где между иксами? >или всю остальную строку надо нулями забивать? Где написано, там и менять. Если написано что смещение 10, а байты xx xx xx 90, то менять надо байт по смещению 10+3=0Сh.
__________________
Над струнами вен моих Лезвия осени, Их сталь леденящая В просинь рук просится... ©Темнозорь |
|
|