1. Куча / Говнокод #22015

    −17

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    #!/bin/bash
    
    echo "Windows 10 installation script by cykablyad v0.1"
    
    if [ "$(id -u)" != "0" ]; then
       echo "run me as root plz"
       exit 1
    fi
    
    source=$1
    
    target="$2"
    bootp="${2}1"
    winp="${2}2"
    
    mountdir="${3:-/mnt}"
    isodir="${mountdir}/iso"
    bootdir="${mountdir}/boot"
    windir="${mountdir}/win"
    
    echo "erasing disk"
    parted -s $target mklabel gpt
    echo "creating boot partition"
    parted -s $target mkpart primary fat32 2048s 616447s # 300MB boot partition
    echo "creating Windows partition"
    parted -s -a optimal $target mkpart primary ntfs 616448s 100% # Windows partition
    echo "formatting boot partition"
    mkfs.fat $bootp
    echo "formatting Windows partition"
    mkfs.ntfs -fq $winp
    mkdir $isodir
    mkdir $bootdir
    mkdir $windir
    mount $source $isodir
    mount $bootp $bootdir
    mount $winp $windir
    echo "extracting Windows files"
    wimextract ${isodir}/sources/install.esd 1 --dest-dir $windir
    echo "copying bootloader"
    mkdir -p ${bootdir}/EFI/Boot
    mkdir -p ${bootdir}/EFI/Microsoft/Boot/Fonts
    mkdir -p ${bootdir}/EFI/Microsoft/Boot/Resources
    cp -r ${windir}/Windows/Boot/EFI/* ${bootdir}/EFI/Microsoft/Boot
    cp -r ${windir}/Windows/Boot/Resources/* ${bootdir}/EFI/Microsoft/Boot/Resources
    cp ${windir}/Windows/Boot/Fonts/* ${bootdir}/EFI/Microsoft/Boot/Fonts
    cp ${windir}/Windows/Boot/EFI/bootmgfw.efi ${bootdir}/EFI/Boot/bootx64.efi
    echo "generating bcd"
    cp ${windir}/Windows/System32/config/BCD-Template ${bootdir}/EFI/Microsoft/Boot/BCD
    cat <<< 'rdel Objects
    q
    y' | reged -e ${bootdir}/EFI/Microsoft/Boot/BCD
    diskuuid=$(blkid -o value -s PTUUID $target | sed -e 's/-//g' | sed -r 's/(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{8})/\4\3\2\1\6\5\8\7\9/' | sed -r 's/(.{2})/\1,/g')
    bootuuid=$(blkid -o value -s PARTUUID $bootp | sed -e 's/-//g' | sed -r 's/(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{8})/\4\3\2\1\6\5\8\7\9/' | sed -r 's/(.{2})/\1,/g')
    winuuid=$(blkid -o value -s PARTUUID $winp | sed -e 's/-//g' | sed -r 's/(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{8})/\4\3\2\1\6\5\8\7\9/' | sed -r 's/(.{2})/\1,/g')
    
    cat <<< "Windows Registry Editor Version 5.00
    ... дохуя содержимого реестра ...
    " > ${bootdir}/EFI/Microsoft/Boot/BCD.reg
    echo y | reged -I ${bootdir}/EFI/Microsoft/Boot/BCD HKEY_CURRENT_USER\\lightbcd ${bootdir}/EFI/Microsoft/Boot/BCD.reg
    echo "done"

    Этот скрипт устанавливает винду, проверь

    Сильно не бить, я ниасилил баш

    Запостил: cykablyad, 20 Января 2017

    Комментарии (25) RSS

    • сука
      http://i89.fastpic.ru/big/2017/0120/32/bdff9514225aa446f2b99ac0e1c7ec32.png

      но блокнот открывается, значит и так сойдет
      http://i89.fastpic.ru/big/2017/0120/cf/bea64703bc4882a985c2399bc0dc7acf.png
      Ответить
      • Есть вариант что установщик выставляет хуйню в реестр, возможно стоит установить голую винду и сравнить ее реестр с тем, что в образе лежит
        Ответить
      • О, нихуя себе, после получасовой ебли с HKLM/System и sysprep оно загрузилось в это
        http://i91.fastpic.ru/big/2017/0121/c0/a9bfca4adac0b461c3740dc3833a29c0.png

        Охуенно интересно теперь будет подобрать пароль к NT-Authority/System
        Ответить
        • А не проще создать юзера? :)
          Ответить
          • Для этого надо перезагружаться в WinPE, а мне лень
            Ответить
            • Через реестр создай из линуха.

              Боюсь, что у системных учёток тупо нет паролей.
              Ответить
              • Не, все хуйня
                Надо разбираться как все это работает и доделывать установочный скрипт
                Пойду переустанавливать Шindows, он сам не переустановится
                Ответить
              • По иронии чтобы из под винды заглянуть в SECURITY ветку реестра (полагаю именно туда мапица SAM с паролями) нужны права T-Authority/System: даже обычного админа туда не пустят;)

                Во всяком случе на запись
                Ответить
                • Всегда можно смонтировать ветку в другую ось...
                  Ответить
                  • можно, да.

                    Думаю что LockSmith (сбрасываетль паролей) на MSDart (это такой WinPE от MS очень крутой) так и работает_)
                    Ответить
        • https://msdn.microsoft.com/en-us/library/windows/desktop/ms684190(v=vs.85).aspx
          This account does not have a password.

          да и не зачем тебе это. Надо создать пользователя, причем обычного.
          Ответить
    • >>parted
      гг, еще и в GPT захуячил

      забавно

      >>mkfs.ntfs -fq $winp
      а мне вот интересно: насколько хорошо они умеют писать NTFS?
      В моем глубоком децтве NTFS в линуксе была чуть-ли не ридонли (работа записи была крайне нестабильна) потому что проприетарное
      Ответить
      • Она и щас ридонли, если неправильно винду выключишь
        Судя по всему, разрабы драйвера NTFS в линуксе зассали трогать незавершенные журналы NTFS и монтируют раздел с такими в ридонли
        Ответить
        • а Microsoft разве не сообщил пароли от NTFS для Canonical? иначе я хз как это может не уронить мне всю ФС
          C:\Users\Lokich>ver
          
          Microsoft Windows [Version 10.0.14393]
          
          C:\Users\Lokich>bash
          lokich@LOKICH-PC:/mnt/c/Users/Lokich$ uname -a
          Linux LOKICH-PC 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
          lokich@LOKICH-PC:/mnt/c/Users/Lokich$
          как бы, я в суть не вникал, но с /mnt там монтируются все диски
          может это и есть тот мифический Xenix? )
          Ответить
          • Очевидно это делает винда, а не wsl, коий просто пикоконтейнр
            Ответить
    • > run me as root plz
      Зачем?
      Ответить
    • А где же rm -rf? Не, так не интересно.
      Кстати, почему в куче?
      Ответить

    Добавить комментарий