-ћузыка

ѕодразделение Ђ ї в миниатюре

ƒневник

¬оскресенье, 22 ћа€ 2016 г. 21:44 + в цитатник

ћ¬ƒ –‘
¬ажнейшее предупреждение о морально-этической и законной стороне вопроса.
—разу же оговорюсь, что все нижепроделанные операции и почерпнутые знани€ пользователь должен производить с благими цел€ми, задумыва€сь о последстви€х, соблюдать рамки законодательства государства, в котором производ€тс€ данные манипул€ции.


» вот встала предо мной задача, в одном из подразделений ћ¬ƒ, как обычно Ђсрочної, оживить рабочие места (ј–ћ). —уть работы, в принципе, одна - текстовый процессор. ѕоскель оснащЄнность везде разна€, имущественные отношени€ и происхождение аппаратуры завеса мрака, печатные машинки собирались разных лет, по большей части рабочие станции HP, kraftway и иных брендированных и псевдобрендированных производителей, зато принтеры у всех HP 1018 (удобно со встроенными драйверами). Ќу ретро, да, P4 на 845-865 чипсете, бывало и s775. Ѕыла среди них и машинка, поверенна€ органами, окроплЄнна€ св€той водой, с лицензионным ѕќ и опечатанна€ не только гарантийкой, но и ман€щей голографической наклейкой Ђ—«»ї, что означало, что пропущена через рентген.



 стати, тоже интересное поделие отечественного компьютеростроени€ - материнска€ плата ITX пришита к задней панели матрицы, выходит довольно толсто, но в целом кондово и главное работает. —зади выведен короткий огрызок кабел€ VGA и вставлен в матплату, кнопки reset/power/usb выведены в удобное место. » в общем-то всЄ, ну конечно же защитное стекло Ђвклеенноеї как модные автобусы или gorilla glass без тача. “о есть некое подражание моноблокам iMac и иным MSI.
Ќу так вот, зассал - не полез. “олько использовал в качестве ещЄ одного монитора при сборке. √оворю, мол, лучше € вам подгоню ещЄ системник, только грех на душу брать не буду



я с годами становлюсь говнистее, и просто Ђвинду переставитьї уже не минет, а минет + стоимость желаемой винды, а ещЄ лучше купленна€ уже. »бо в противном случае беру серийник с задней крышки ноута и ставлю то, что там сто€ло, будь то starter или home. „то конечно же не исключает носимой с собой коллекции годных серийников, которые уже не будут использованы т.к. ноутбук сЄ, сказал досвидос, уйд€ на линупс или на пенсию Ёто дань законности. ≈жели уже сто€щую винду можно оживить, вне зависимости от номеров, еЄ надо оживл€ть ибо тогда это не перестановка, а сервисное обслуживание.



“ак вот, длинное лирическое отступление закончено.


ƒопустим, попадает в руки комп на windows, с которого нужно выт€нуть так называемый ореол пользовател€, окружение, метафизическую информацию вплоть до расположени€ значков на рабочем столе, ну и в конце концов там может сто€ть работоспособное ѕќ только на данной конкретной копии ќ—. ÷ели см.выше, а € уже упоминал конкретные методы выуживани€ нужной информации. „то делаем? —ливаем образ системного диска. “ерминологи€ поста такова:


* Ђ»сследуема€ машинаї - та, в Windows которой необходимо получить доступ. — неЄ будет слит образ жЄсткого диска.
* Ђ’ранилищеї - стационарно-портативна€ машинка, компьютер с 100500 интерфейсами, мощным камнем и всеми упом€нутыми утилитами, на которой ещЄ и крутитс€ виртуалка.
* Ђƒонорї - немного промахнулс€, но пустой жЄсткий диск, куда будет залит побайтный образ 1:1 жЄсткого диска с исследуемой машины. Ќу, 1 “б или 500 √б хватит.
* ЂЌаша виндаї - флешка или жЄсткий диск, с которой будет производитьс€ загрузка в исследуемую машину с целью клонировани€ жЄсткого диска. «агружаетс€ на любом железе, содержит все вышеупом€нутые утилиты, и в принципе, не имеет принципиальной разницы кроме универсальности с виндой, котора€ стоит на хранилище.
* ЂRAW-образї, ЂVHDї, ЂVMDKї - производные образов и разные типы, то есть полноценные ќ√–ќћЌџ≈ файлы, представл€ющие собой виртуальный диск, монтируемый в виртуальную машину или непосредственно к Ђхранилищуї. “о есть уже слитый жЄсткий диск, на котором возможны изменени€.

¬ случае свободного доступа к внутренност€м вынимаем его, подключаем к так называемому Ђхранилищуї, компьютеру с множеством интерфейсов (PATA, SATA, SAS, SCSI и переходниками), донорскими жЄсткими дисками всех мастей и размеров, и с помощью ∆Єсткий диск разнообразнейших Acronis TrueImage, WinImage и вплоть до WinHEX сливаем байт-в-байт исходный жЄсткий диск. ¬ этом случае Acronis посыпает голову пеплом ибо алгоритмы у них не побайтовые. Ќи в коем случае не пофайловое и тем более не Ctrl-C + Ctrl-V! “акое побайтное копирование Ќ∆ћƒ важно, если есть подозрение на неумелые попытки Ђзамести следыї со стороны пользовател€, либо исследование должно быть произведено скрытно вплоть до мелочей (и только по данным SMART видно, что количество winhex включений и раскруток шпиндел€ увеличилось на +1). ¬ противном случае в NTFS сработает механизм простановки last access timestamp (NtfsDisableLastAccessUpdate), проставит ночное врем€ на доступ к важным и нужным файлам, а параноиков глюком не убедишь.   тому же, могут не соблюстись права доступа. “олько побайтно на чистый диск или в RAW образ.



¬ случае же ноутбука или опечатанной гарантией машинки можем поступить следующим образом: завести носитель или жЄсткий диск с портативной Windows (чтобы был нормальный жЄсткий диск 2,5" + мост-переходник SATA/USB с алиэкспресса), с которого можно будет загрузитьс€ на исходной машине (тонкости ниже). » донор-диск чтобы был USB. ќба подключаем через USB, грузим в нашу систему. ЂЌашаї винда должна быть заточена напильником на универсальность и содержать средства клонировани€ дисков, без проблем подн€ть железо и жЄсткие диски исследуемого компьютера. ƒл€ пущей безопасности временно ставим в BIOS дату/врем€ каким-нибудь неслучайным уже прошедшим годом или сегодн€шним днЄм, чтобы избежать того же last access timestamp. Ќу и соответственно по USB сливаем чуть медленнее, чем по SATA/SAS.



„астный случай: компьютер параноика. ѕри —0–ћ, пон€тых и обыске пон€тное дело. «апароленный BIOS, конечно, не панаце€. »так, компьютер опломбирован наклейкой сзади, висит замочек на Ђухеї системного блока, стоит пароль на BIOS обеими уровн€ми защиты - Setup и User (то есть ни в настройки, ни при включении не зайти). “ут надо сказать да, снимаем шл€пу, человек позаботилс€ о сохранности всего и вс€, истинный параноик. ”же запрос в органы на выдачу ордера изъ€ти€ железа.
¬ариант менее запущенный - пароль на BIOS Setup.  ак правило, при прохождении POST выдаютс€ подсказки, что нужно нажать дл€ меню загрузки с разных носителей (F7, F12...), почему-то этот момент обошли стороной разработчики BIOS. «десь нас ждЄт успех, вангую. “олько дату-врем€ переставить через Ђнашуї систему.
¬ариант с паролем на BIOS Setup и User, но опломбированным лишь гарантийкой. ‘ирмы-торгаши как правило кле€т гарантийку не на боковую крышку, а слоты ќ«”, Ќ∆ћƒ, видеокарту и кулер с ÷ѕ. ‘ормула успеха - подключение в свободный SATA разъЄм на материнке диска с Ђнашейї системой и донора.


»так, манипул€цию с железом исследуемой машины закончили, подключили, закрутили всЄ Ђкак былої, нас тут не было, пон€тые подтверждают.
«јƒ–ќ“
ƒалее RAW-образ начинаем ковыр€ть. ќн представл€ет собой сами разделы, таблицу разделов, MBR/GPT и иные PBR. ѕервоисточник сохран€ем.
≈сли это образ, то надо будет его записать на пустой донор, либо копию преобразовать в виртуальный VHD с фиксированным размером. ¬ажно дл€ побайтового исследовани€. ƒалее работаем с физическим либо виртуальным носителем-диском, смонтированным в Windows. ƒл€ понимани€ linux-разделов подойдЄт утилита Ext2Fsd, или более сложным образом через coLinux (у мен€ была задача от того же заказчика слить и причесать записи китайского видеорегистратора, а поскольку многие так и не умеют читать сторонние ‘—, записи загадочно исчезают в процессе C0PM).


“еперь r-studio (586x400, 25Kb) мы можем гул€ть по диску как белый человек. ћожно бы на этом остановитьс€, пройд€сь по папкам документов и рабочих столов, запустив поиск по нужным типам файлов (ага, права NTFS дадут), но будем дотошными и запустим утилиту восстановлени€ файлов. Ќичего лучше R-Studio и вс€ческих Easy Photo Recovery / Advanced Photo Recovery придумать сложно. ‘ото восстанавливалки хорошо действуют на SD-карты, ибо как правило, карточка форматируетс€ после заполнени€, а фото лежат последовательно (камере так легче), их проще easyphotorecovery (640x492, 91Kb) по сигнатурам JFIF вычисл€ть. ќтдельного упоминани€ заслуживают утилиты типа Thumbnail Cache Viewer (thumbcache, thumbs.db), позвол€ющие открыть базу данных миниатюр, наход€щуюс€ по адресу %userprofile%\AppData\Local\Microsoft\Windows\Explorer. ѕолезность еЄ в том, что она хранит однажды построенные эскизы также удалЄнных файлов, а в качестве 256x256 они уже преставл€ют интерес. —разу оговорка - если пользователь параноик и ставит вс€ческие TrueCrypt и иные BitLocker, это уже дело подразделени€ Ђ ї поскель необлачный брутфорс на бытовых машинках как-то попахивает, да и став€щий TrueCrypt, как правило, человек уже тЄмный в помыслах.



ѕомнитс€ как-то чудик с ноутом на кольцевой ветке метро, чей ноут оставл€л желать большей зарплаты обладателю, который с вашим трукриптом, паролем, подгл€денным через плечо, грузил винду три минуты до состо€ни€ рабочего стола. “ри минуты,  ј–Ћ! ¬идимо, понимал, что едет в г.ѕетушки и что просто посе€ть ноут по дороге с кучей оффлайнового прона специфичного содержани€ может навредить его репутации и честному имени. Ўифрование томов - не презерватив, это панаце€.


  нашим донорам и подопытным. ѕрошлись R-Studio? Ќашли свежепотЄртые файлы? ’орошо, восстанавливаем, сохран€ем. thumbcache1 (280x254, 18Kb) »нтерес представл€ют файлы, удалЄнные с рабочих столов, из документов, папок $RECYCLE.BIN, Users, ProgramData, Documents and Settings и конечно же, старые потЄртые и непотЄртые бэкапы стандартной утилитки Ђјрхиваци€ Windowsї (если не стоит иное).  стати, јрхиваци€ Windows - огромна€ дыра в безопасности. ƒоступ свободный, сейвит arhiv_w (630x259, 9Kb) относительные изменени€ в папке Users и иные полезности. ѕосле первых оргазмов радости юного исследовател€-перлюстратора и копировани€ файлов с поверхности, переходим к глубоко технической части.



ѕопытки подн€ть чужую винду на стороннем железе или виртуальной машине будут увенчаны успехом в 90% случаев, говорю вам как человек, подн€вший на изделии Windows Embedded (где нет иных драйверов, кроме самых нужных) osnotfound (640x480, 14Kb) с IDE-диска с напрочь выгоревшим компьютером на современный лад на Atom D525 с тем же серийным номером дабы не портить целостность издели€. —ерийный номер уже установленной Windows можно узнать включа€ или не включа€ компьютер утилитой ProduKey или скриптом на WSH, если наклеечка оторвалась со временем. ѕодключать чужой реестр умеем? — помощью обычного такого REGEDIT, в меню которого есть пункт Ђ«агрузить кустї, который работает при наведении выбора на HKEY_USERS, загружаем одну из веток %windir%\system32\config\Ќ”∆Ќџ…_ ”—“ или ”Ћ≈…: system, sam, security, s-*, в конце концов usrclass, ntuser.dat из папок пользовател€ и т.д. Ётот скилл нам понадобитс€, когда будем оживл€ть Windows.



ƒавайте попытаемс€ загрузитьс€ с образа VHD, VMDK в случае VMware или просто с диска в случае реального железа. “еперь уже можно ужать раздел и не заботитьс€ о побайтной сохранности ранее удалЄнных файлов. ѕервым делом экспериментально проверим работоспособность загрузчика BCD, просто попытавшись запустить - если winloaderror (700x525, 25Kb)BOOTMGR хоть как-то откликнулс€, пусть с ошибками 0xc0000225 или 0xc00000e, то значит загрузочный раздел уже активен (на MBR-дисках), бутсектор соответствует нужному, скрытые разделы целы (когда они есть)). ¬ противном случае есть смысл перепроверить заранее утилитами Visual BCD, прописать ручками в активном разделе в папке BOOT\BCD путь к винде (не рассматриваю 0x07b (700x393, 81Kb) версии WinXP с его многострадальным BOOT.INI потому что это детские игрушки, который можно даже кастомизировать разными цветами). Ќа случай перестановки разделов местами, копировании-восстановлении образов и иных манипул€ци€х со сжатием раздела, рекомендую утилиту BOOTICE - позвол€ет работать с MBR/PBR/активировать разделы. “о есть загрузочный раздел исследуемого диска должен содержать MBR Windows NT 5.x/6.x, PBR BOOTMGR, быть активным - с динамическими дисками, GPT, EFI и кусками RAID разговор отдельный, там сво€ атмосфера. “еперь про BCD и замечательную команду BCDBOOT. ћожет кто из олдфагов помнит злосчастный бутсектор MS-DOS, ищущий IO.SYS MSDOS.SYS COMMAND.COM в первом секторе первого раздела жЄсткого диска? «абудьте.  онсольна€ ЂBCDBOOT /?ї[b] наше всЄ. ≈сли менюшка загрузчика не видит нужной винды, просто прописываем еЄ из под рабочей винды с подключЄнным диском командой BCDBOOT g:\WINDOWS /S g:, где [b]G: - есть буква исследуемого раздела, его же активируем вышеуказанным BOOTICE, вуал€.
bcdedit (600x328, 67Kb) bootice (466x315, 12Kb)
ѕосле указани€ правильных параметров MBR/PBR и лечени€ BCD (они не повред€т диску, это же не форматирование) должен запуститьс€ BOOTMGR загрузчик с менюшкой, в которой будет главный пункт - с нашей испытуемой виндой. ј далее самое сладкое и горькое - ковыр€ние в драйверах. ƒл€ начала теоретическа€ справка, с веро€тностью 90% винда с первого раза не заведЄтс€, уйдЄт в перезагруз Starting windows либо даст синий экран с ошибкой 0x000007B. я уже писал об организации полноценной Windows XP, работающей на любом железе, своеобразный полноприводный liveCD, она и поныне здравствует у мен€ на двухгиговой флешке-шлюшке, которую € сую всюду, где нужно поправить здоровье винды или ситуацию Ђойї, в посте много полезных ссылок. ќшибка BSOD 0x000007B возникает, когда загрузчик уже обнаружил файл winload.exe, реестр, выбрал профиль загрузки (CurrentControlSet), подгрузил самые необходимые драйверы (RTFM гуглим ключ CriticalDeviceDatabase), но напоролс€ на то, что дл€ дальнейшей загрузки нужно бы уже пользоватьс€ не методом доступа к диску, предоставл€емым BIOS, а полноценным 32- или 64-битным драйвером контроллера дисков уровн€ €дра. Ѕезопасный режим и предыдуща€ удачна€ конфигураци€ не сработает. ’итра€ винда сама в себе содержит уже все-все-все драйвера, необходимые дл€ загрузки на почти любом железе (ALi, SiS, AMD, Intel, а те, которые не содержатс€ в ней, подгружаетс€ по нажатию ЂF6 дл€ установки особых драйверов SCSI/RAIDї, и тут уже сво€ атмосфера наступает с импортом драйверов дл€ x86/x64 и прописыванием в сторонний реестр), но отключает их за ненадобностью и ускорени€ загрузки ради. —сылки на них в чужом реестре (файл SYSTEM) наход€тс€ в ветке HKLM\SYSTEM\ControlSetXXX\services, их сразу несколько веток, последних Ђудачныхї конфигураций. »так, с веро€тностью 10% винда заведЄтс€ из коробки, то есть совпадЄт чипсет компьютера-Ђхранилищаї и машины, с которой сн€т образ, но с веро€тностью 90% придЄтс€ лезть в чужой реестр.  онечно же, создав бэкап файла SYSTEM из %windir%\system32\config.



ƒл€ начала попробуем самое банальное: смотрим HKLM\SYSTEM\Select ключ Default, значение REG_DWORD есть XXX в ControlSetXXX, лезем в соответствующую ветку и исправл€ем в intelide (539x347, 16Kb)ControlSetXXX\services\ ключи Start=3 или Start=4 на Start=0 у веток AMDIDE, ALIIDE, MSAHCI, VIAIDE, INTELIDE, INTELPPM, AMDPPM. «десь Start=0 означает запуск в первую очередь, Start=3 запуск по запросу, а Start=4 означает, что служба отключена. ќп€ть же, в 95% случаев система заведЄтс€, поскольку мы знаем, что за чипсет стоит на Ђхранилищеї. ƒаже VMware спокойненько понимает INTELPPM и INTELIDE.



¬ моЄм случае с XP Embedded пришлось действовать глубже. ѕон€тно, что тьма служб в реестре похожа на DLL hell из прошлого, было прин€то решение поставить р€дом Windows, пересадить кусты реестра SYSTEM (HKLM) и пусть поднимаетс€ как хочет. ѕопутно пришлось пересаживать SECURITY и SAM, попыталс€ в ветку USERS (hivelist) прописать нужного юзера, но он не заходил (дл€ этого видимо и придумана SECURITY, чтоб не давать ушлым ковыр€тьс€ в системе), посему создан новый пользователь за тем же именем, а затем уже заменены файлы нового на старый. » только так завелось. True story, bro. Ёто был самый экономичный ремонт издели€, вставший всего-лишь в 100 тыр.


¬от, логотип запуска пройден, и мы таки видим крут€щийс€ кружочек, пусть с ещЄ не работающей мышью и клавиатурой, но уже графический режим VgaSave, уже надпись Ђƒобро пожаловатьї, уже жизнь. ”ра? ƒа, однозначно. ѕора бы радоватьс€, да обождите пока все драйвера подгруз€тс€. “ак, стоп. —амое главное-то! “ут же пароль наверн€ка стоит.  оторый мы наверн€ка не знаем. Ќу, самое рабочее решение чтобы иметь хоть какое-то otkaz_ustanovki (400x160, 11Kb) управление компьютером с чужой виндой без клавиатуры и мыши кроме кнопки нежного выключени€ ACPI - клавиатура и мышь PS/2, воткнутые заранее в Ђхранилищеї или виртуальную машину. ќни железно заведутс€, но только после перезагрузки, и можно будет зан€тьс€ ручным брутфорсом))).



ѕо доступу к залоченной паролем запароленной винде можно без фактического брутфорса и подбора парол€ войти в систему другим пользователем с правами администратора, который можно создать следующими способами:


через предустановочное окружение (WinPE) и средства восстановлени€, но много ручных действий.


јвтоматизировать процесс помогает юзер-френдли утилита Windows Password Recovery Tool Ultimate, но платна€ и функционал избыточен. я сам в подобных случа€х пользуюсь микроскопической утилитой PasswordRenew by sala, запущенной на отдельно сто€щей windows (родной дл€ Ђхранилищаї) или под WinPE. ѕосле перезагрузки в испытуемую Windows обнаружим двух пользователей (или N+1), входим в свежесозданный локальный акаунт passrenew (548x237, 9Kb) (учЄтку) без парол€, он готовит рабочий стол и вуал€. ≈щЄ одна микропобеда. ѕоскольку это администратор, мы можем преспокойненько установить все недостающие драйвера, которые под знаком вопроса в Device Manager, а также пошукать по папкам пользователей уже на этой машине. ћожем даже попробовать запустить виндозависимое (прив€занное к этой копии) ѕќ, если така€ цель преследуетс€. Ќе забываем, что при пересадке на новое железо напрашиваетс€ переактиваци€. –ешаем моральную дилемму - подключатьс€ ли к интернетам, светить ли старый серийник ибо втора€ копи€, а перва€ работать перестанет и всплывЄт на исходной машине, или про€вить моральную гибкость по отношению к авторам данной ќ—, ну вы всЄ пон€ли в меру своей испорченности и жадности. ƒействуем по ситуации, по мне так дл€ необходимых операций можно и с чЄрным экраном посидеть.



“еперь windows password kracker (700x547, 49Kb) можно обратитьс€ к утилитам pwdump и Windows Password Kracker, которые позвол€ют при некоторой смекалке и временных затратах (мощном процессоре Ђхранилищаї) выкорчевать из хэша MD5 оригинальный пароль.



» вот наконец мы в окружении пользовател€ Windows, войд€ с помощью парол€, добытого в предыдущем пункте, можем видеть самое ценное - расположение значков на рабочем столе в том пор€дке, в котором пользователь их оставил на момент сн€ти€ образа. Ѕыть может, с некоторыми косметическими дефектами типа разрешени€ экрана, отсутствующего Windows Aero, иного оборудовани€ типа звука и сетевых подключений, прив€занных к конкретным адаптерам. ќднако теперь мы можем вытащить даже DNS и иные IP-адреса прив€зки через реестр (гуглим, господа), данные дл€ входов на VPN, SMB, социальные сети если они авторизованы или их сохранЄнные пароли в браузерах, ѕќ с прив€зью к ќ— будет работать (если прив€зана к ќ—, а не к железу с помощью серийников), истории переписок в мессенджерах типа skype (shared-dynco, Skype log viewer) и иных QIP (QIP history converter), браузерные аккаунты Google и Firefox, Opera Link, в общем и целом, цель исполнена.



¬спомним про архивацию Windows, котора€ больша€ дыра в безопасности: если сделать бэкап пользовательских файлов, то можно смело вручную попробовать восстановить файлы пользовател€, акром€ юзер дженерейтед контента (UGC), фото, видео, txt-шек, doc-ов, который и так на поверхности, архиваци€ сохран€ет файлы из папок кэшев браузеров, историю, сохранЄнные пароли, куки, настройки и т.д. Ѕыть может, авторизаци€ на каком-нибудь мохнатом неключевом сайте даст ключ Advertisement ID или иные ключи €ндекс-крипты чтобы интернет встретил нас контекстной рекламой про гинекологию и печатные платы. Ћаза€ по самым основным сервисам типа соцсетей и иных почт следует соблюдать осторожность, ибо теперь же у нас интернеты сделали параноиками всех, везде двухфакторна€ аутентификаци€, прив€зка к мобильным номерам и т.д. ¬сЄ, что можно сделать в оффлайне - лучше делать в оффлайне, следующа€ идеализаци€ - если нужно вылезти в сеть под исследуемой машиной, сделать это из той же сети в те же времена, когда юзер там же. Ќа худой конец можно подключитьс€ через модем с тем же мобильным оператором, что пользует исследуемый пользователь дабы C0PM не сорвалс€ от неча€нной —ћ—-ки.




—ейчас чернушное: если это однократный прецедент доступа к железу, то это пожалуй всЄ. ¬с€ наша добыча. Ќо теперь, зна€ учЄтные данные дл€ входа в ќ—, получив пароль, мы можем внедрить и добавить в исключение антивирусов и иных антиспаев любой логгер дл€ отслеживани€ и перехвата всего-всего-всего. Ёто при случае.  онечно же, данный мануал €вл€етс€ общим среднестатистическим случаем дл€ среднестатистических потребностей oboi_komp1 (450x337, 29Kb) исследовател€ среднестатистических локальных машин. Ќамеренно не рассматриваю любые аспекты, затрагивающие материально-финансовую сторону, а с морально-этической составл€ющей боритесь сами - стоит ли оно того, или это спортивный интерес. ƒумаю, не большой секрет в том, что ”—Ѕ крепко жмЄт сотрудников по части таких вот действий, и без ордера, без запроса к операторам св€зи, провайдерам а зачастую и хоз€евам соцсетей нужную инфу достать непросто. «десь же рассмотрена абстрактна€ ситуаци€, когда есть возбужденное дело, есть недостаточное количество улик, нет разрешени€ либо оно зат€гиваетс€ сверху на полное исследование всей подноготной, а самолЄт в кампучию или иную дауншифтию дл€ исполнител€ преступлени€ вылетает вечером, надо лишь знать номер рейса и место вылета чтобы вз€ть на гор€чую. Ётакое супергеройство в ограниченном временном диапазоне. ¬роде как и утечка, вроде как и нельз€, да вроде в деле и не будет освещено то, как следствие узнало нужную инфу, вроде как по косвенным уликам))))


¬ посте, на самом деле, содержатс€ завуалированные ответы на банальные вроде бы вопросы: как пересадить Windows на другую материнскую плату, компьютер, без переустановки, помен€ть платформу Intel / AMD, починить загрузчик, зайти в Windows без парол€, при усердном гуглении нужных ключевых слов из поста можно даже найти мануалы делай раз-два-три.

–убрики:  этот удивительный мир вокруг нас

ћетки:  

Ётимологическа€ ошибка

ƒневник

—реда, 29 ћа€ 2013 г. 02:33 + в цитатник
 ак гласит педики€:
Hex (hexadeсimal) Ч обозначение шестнадцатеричной системы счислени€.
¬ переводе с немецкого ЂHexenї означает Ђведьмы, колдуньиї, а Ђto hexї Ч Ђколдоватьї.
“о-то € не мог долгое врем€ уловить св€зь меж фентезийной игрушкой, именованной превосходной степенью степени счислени€. Ђќн куда более шестнадцатеричен, даже более, шестнадцатеричнейший...ї.
“еперь, обнаружив пропажу своего html-сборища полезных функций, € буду публиковать их пр€мо тут. ћне насрать на то, что это вовсе не дн€фковый формат, просто сюда € имею быстрый доступ, а ещЄ больше мне насрать на мнение окружающих, что VB6 отнюдь не сама€ лучша€ среда реализации всего-всего, € как  ен —ильверман, отрабатываю алгоритмы и принципы в самом что ни на есть допустимо-нестрогом и в то же врем€ однозначно интерпретируемом €зыке BASIC. «ачастую пусть так и остаЄтс€, ибо зачастую производительность Ђи так сойдЄтї. «атем весь этот индусский код можно запилить в ASM, однако VB хорош тем, что доступен даже из Excel.
»так, не отвлекаемс€.
ѕеревод кодовых страниц CP1251 и CP866 (VB, QB)
Function String1251To866$(strWin$)
   '»з кодовой страницы 1251 в 866
   TwinTodos$ = ""
   For i = 1 To Len(strWin$)
      k = Asc(Mid$(strWin$, i, 1))
      If k >= 192 And k <= 239 Then
        TwinTodos$ = TwinTodos$ + Chr$(k - 64)
      ElseIf k >= 240 And k <= 255 Then
        TwinTodos$ = TwinTodos$ + Chr$(k - 16)
      ElseIf k = 9 Then ' онверси€ табул€торов
        TwinTodos$ = TwinTodos$ + Space$(8)
      Else
        TwinTodos$ = TwinTodos$ + Chr$(k)
      End If
   Next i
   String1251To866$ = TwinTodos$
End Function

Function String866To1251$(strDos$)
   '»з кодовой страницы 866 в 1251
   TdosTowin$ = ""
   For i = 1 To Len(strDos$)
      k = Asc(Mid$(strDos$, i, 1))
      If k >= 128 And k <= 175 Then
        TdosTowin$ = TdosTowin$ + Chr$(k + 64)
      ElseIf k >= 224 And k <= 239 Then
        TdosTowin$ = TdosTowin$ + Chr$(k + 16)
      ElseIf k = 9 Then ' онверси€ табул€торов
        TdosTowin$ = TdosTowin$ + Space$(8)
      Else
        TdosTowin$ = TdosTowin$ + Chr$(k)
      End If
   Next i
   String866To1251$ = TdosTowin$
End Function

Ќахождение точки пересечени€ двух отрезков (VB,QB)
Sub LineSegmentCross(x1, y1, x2, y2, x3, y3, x4, y4, xCross, yCross)
  ' —обственно сама выходна€ функци€
  LineEquation x1, y1, x2, y2, AP1, BP1, CP1
  LineEquation x3, y3, x4, y4, AP2, BP2, CP2
  LineCrossing AP1, BP1, CP1, AP2, BP2, CP2, xCross, yCross
End Sub

Sub LineEquation(x1, y1, x2, y2, AP, BP, CP)
  ' ѕеревод координат линии по двум точкам X,Y в коэффициенты
  If x1 = x2 And y1 = y2 Then
    AP = 0
    BP = 0
    CP = 0
  Else
    AP = y2 - y1
    BP = x1 - x2
    CP = -AP * x1 - BP * y1
    coeff = Sqr(AP * AP + BP * BP)
    AP = AP / coeff
    BP = BP / coeff
    CP = CP / coeff
  End If
End Sub

Sub LineCrossing(AP1, BP1, CP1, AP2, BP2, CP2, xCross, yCross)
 'Ќахождение пересечени€ линий
 Delta = AP1 * BP2 - BP1 * AP2
 If Delta <> 0 Then
   xCross = -(CP1 * BP2 - BP1 * CP2) / Delta
   yCross = -(AP1 * CP2 - CP1 * AP2) / Delta
 End If
End Sub

јлгоритм —азерленда- оэна, любезно транслированный одним добрым человеком из википедии на VB
ƒл€ Ђурезонивани€ї (обрезани€) с сохранением углов и направлений координат отрезка (X0,Y0,X1,Y1), если оный выходит за рамки xMin,xMax,yMin,yMax. ¬озвращает False если он не пересекает ограниченную область.
Private Enum EdgeCode
 ecNone = &H0
 ecLeft = &H1
 ecRight = &H2
 ecBottom = &H4
 ecTop = &H8
End Enum

Public Function CohenSutherlandLineClip(x0, y0, x1, y1, xMin, xMax, yMin, yMax) As Boolean
 '—ама процедура алгоритма
 Dim accept As Boolean, done As Boolean
 Dim outcode0 As EdgeCode, outcode1 As EdgeCode, outcodeOut As EdgeCode
 Dim X As Double, Y As Double
 accept = False
 done = False
 Call CompOutCode(x0, y0, xmin, xmax, ymin, ymax, outcode0)
 Call CompOutCode(x1, y1, xmin, xmax, ymin, ymax, outcode1)
 Do
  If (outcode0 = ecNone) And (outcode1 = ecNone) Then
   accept = True
   done = True
  ElseIf ((outcode0 And outcode1) <> ecNone) Then
   done = True
  Else
   If (outcode0 <> ecNone) Then outcodeOut = outcode0 Else outcodeOut = outcode1
   If (outcodeOut And ecTop) Then
     X = x0 + (x1 - x0) * (ymax - y0) / (y1 - y0)
     Y = ymax
   End If
   If (outcodeOut And ecBottom) Then
     X = x0 + (x1 - x0) * (ymin - y0) / (y1 - y0)
     Y = ymin
   ElseIf (outcodeOut And ecRight) Then
     Y = y0 + (y1 - y0) * (xmax - x0) / (x1 - x0)
     X = xmax
   ElseIf (outcodeOut And ecLeft) Then
     Y = y0 + (y1 - y0) * (xmin - x0) / (x1 - x0)
     X = xmin
   End If
   If (outcodeOut = outcode0) Then
     x0 = X
     y0 = Y
     Call CompOutCode(x0, y0, xmin, xmax, ymin, ymax, outcode0)
   Else
     x1 = X
     y1 = Y
     Call CompOutCode(x1, y1, xmin, xmax, ymin, ymax, outcode1)
   End If
  End If
 Loop Until done
 CohenSutherlandLineClip = accept
 End Function

 Private Sub CompOutCode(X, Y, xMin, xMax, yMin, yMax, code As EdgeCode)
   '¬ычисление бинарного кода состо€ни€ пр€мой (отрезка)
   code = 0
   If (Y > yMax) Then code = ecTop _
   Else If (Y < yMin) Then code = ecBottom
   If (X > xMax) Then code = code Or ecRight 
   Else If (X < xMin) Then code = code Or ecLeft
 End Sub

јлгоритмы сортировки массивов
    For i = 0 To UBound(MyArray) '—ортировка пузырьком
        For j = i + 1 To UBound(MyArray)
            If MyArray(i) > MyArray(j) Then
                temp = MyArray(i)
                MyArray(i) = MyArray(j)
                MyArray(j) = temp
             End If
       Next j
    Next i
'---------------------------------------------
' —ортировка выбором (в принципе, N = UBound(MyArray)
         For q = 1 To N - 1
            Min = MyArray(q)
            k_min = q
            For j = q + 1 To N
               If MyArray(j) < Min Then
                 MinY = MyArray(j)
                 k_min = j
               End If
             Next j
             MyArray(k_min) = MyArray(q)
             MyArray(q) = MinY
         Next q

ѕреобразование координат 3D в 2D-проекцию на экране (догадываетесь, к чему € веду всем этим кодом;)?)
Dim camX, camY, camZ    'јбсолютные координаты камеры
Dim aX, aY '”глы наклона камеры по ос€м X и Y
Dim xSize As Integer, ySize As Integer '–азмеры экрана (видимой области)

Function Calculate(X, Y, Z, xscr, yscr) As Boolean
  '—обственно, функци€ проекции из координат точки в экранные
  '√оворит True если надо рисовать
  CalculateTemporaryAxis X, Y, Z, tmpX, tmpY, tmpZ
  If tmpZ > 0 Then Calculate = False: Exit Function

  tempZ = ySize / tmpz
  xScr = Int(tmpX * tempZ + (xSize / 2))  'xSize
  yScr = Int(tmpY * tempZ + (ySize / 2))
  Calculate = True
  '¬ формулах проекции заключен FOV
End Function

Sub CalculateTemporaryAxis(X, Y, Z, tmpX, tmpY, tmpZ)
 'ѕриведение координат из абсолютных к оси Z, направленной из камеры
 tmpX = (X - camX) * Cos(aY) - (Z - camZ) * Sin(aY)
 tmpZ = ((X - camX) * Sin(aY) + (Z - camZ) * Cos(aY)) * (Cos(aX) - (Y - camY) * Sin(aX))
 tmpY = tmpZ * Sin(aX) + (Y - camY) * Cos(aX)
End Sub
soxie_pure_visual_basic_3d (700x406, 55Kb) soxie_pure_visual_basic_3d_1 (700x406, 153Kb)
–убрики:  этот удивительный мир вокруг нас

ћетки:  

 —траницы: [1]