![]() |
про 16-ричные коды
Наткнулся тут на довольно старую, но до сих пор интересную статейку, о том как пробить себе права админа на системах семейства NT, кому интересно - _http://www.madalf.ru/doc2/a13.shtm, но некоторых вещей в ней не понял.
"Существуют еще одна интересная возможность обойти проверку пароля. Сама проверка пароля осуществляется посредством файлика (библиотеки) MSV1_0.DLL. Нам надо найти строчку с командой cmp eax, 10h или ее шестнадцатиричный эквивалент 83 F8 10 Такая строчка встречается 5 раз по данным смещения. ... Данная проверка смещения 1F6C (.75B81F6C) - это проверка пароля для входа. Нам нужно лишь поправить эту проверку убрав ее и поставив переход: ...." внимание вопрос - что есть "данные смещения", "переход" и как этот переход ставится? З.Ы.: основы что такое шестнадцатеричная система счисления представляю, объяснять не надо. |
vuk
>что есть "данные смещения", "переход" и как этот переход ставится? Смещение в файле относительно начала его. Переход - это команда ассемблера записанная по данному адресу(смещение его от начала файла указано). Не знаю как проще объяснить :) |
хм... ну хоть слегка просветил. теперь как переход задаётся. вот есть у меня файл открытый в 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"? |
>те 000...10 это у нас начальное смещение?
Да. >что есть виртуальное смещение? Почитай описание PE-формата exe-файлов. Если кратко, то это адрес байта, который он будет занимать в памяти после загрузки файла. >тогда вопрос, где конкретно ставится это "90"? Указано же - 1F9E. |
"где конкретно" это в каком месте строки с этим смещением, где между иксами?
или всю остальную строку надо нулями забивать? бред... кажется... |
vuk
>"где конкретно" это в каком месте строки с этим смещением, где между иксами? >или всю остальную строку надо нулями забивать? Где написано, там и менять. Если написано что смещение 10, а байты xx xx xx 90, то менять надо байт по смещению 10+3=0Сh. |
| Часовой пояс GMT +4, время: 04:18. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.