- 20.06.2022
- 23 845
- 218
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1
Цель этого руководства - показать пользователям, как начать создавать собственную пользовательскую прошивку
Шаг 1:
Гуиде:
вам нужна новейшая версия Xlinix Vivado (требуется учетная запись в AMD)
Сообщество Visual studio (потому что я использую его для этого руководства и функций поиска.)
исходный код прошивки по умолчанию, найденный в репозитории ulfs на github
Источники:
Вивадо:
Visual studio :
Источник прошивки :
(я не буду рассказывать вам, как их установить, это очень просто.)
Шаг 2:
Первоначальная настройка:
Нам нужно выполнить некоторые настройки, прежде чем мы продолжим.
откройте папку PCIeSquirrel с помощью visual studio
теперь давайте выполним поиск функций, которые мы хотели бы изменить
нажмите CTRL+F для поиска и введите rw[20] <= 1;
результатом должен быть файл с именем pcileech_pcie_cfg_a7.sv , в котором строка указана как 208
Итак, давайте изменим некоторые строки!
давайте изменим строки 208 и 209, чтобы отразить это:
rw[20] <= 1;
rw[21] <= 1;
и затем в строке 215 есть DSN (серийный номер устройства), указанный как таковой :
rw[127:64] <= 64 '00000000xxxxxxxx; // +008: cfg_dsn
Давайте изменим эти последние цифры, вы можете увидеть, что по умолчанию в конце стоит 35
(Чип Artix 35T)
пример :
rw[127:64] <= 64 '0000000042006969; // +008: cfg_dsn
Хорошо, как только это будет сделано, давайте сохраним все файлы полностью
(файл в верхнем левом углу "сохранить все").
Шаг 3:
Следующее, что мы собираемся сделать, это "сгенерировать" проект
Откройте TCL shell 2022.xx (ваша версия может отличаться, не волнуйтесь.)
это должно быть у вас после установки vivado.
используйте cd и укажите на папку проекта
(если это выдаст сообщение об ошибке "каталог не найден", поменяйте косые черты)
пример: cd C:/Users/XXXX/Desktop/PCIeSquirrel
Теперь мы перешли в папку с исходным кодом и хотим создать проект
vivado, введите команду:
источник vivado_generate_project.tcl -notrace
дождитесь завершения.
после завершения у нас будет файл нашего проекта в каталоге
PCIeSquirrel\pcileech_squirrel\pcileech_squirrel.xpr
После этого давайте перейдем к следующему шагу!
Шаг 4:
Теперь vivado выглядит сложным, очень пугающим.Не напрягайтесь. сделайте резервные копии, все будет в порядке
давайте дважды щелкнем по этому файлу проекта, чтобы открыть проект в vivado (да)
В окне менеджера проектов вы увидите поле с надписью "исходные тексты", внутри которого находится дерево файлов.
давайте откроем дерево и перейдем к
pcileech_squirrel_top\i_pcileech_pci_a7
теперь вы должны увидеть "файл" с именем i_pcie_7x_0 с желтым значком.
давайте дважды щелкнем по нему, чтобы "Настроить IP"
Появится большое окно с кучей опций, нас интересует вкладка "Идентификаторы"
измените их на устройство, которое вы хотите "имитировать"
, либо найдите идентификаторы онлайн, либо скопируйте их с физического устройства, которое у вас уже есть.
например:
Идентификатор поставщика: 10EB
Идентификатор устройства: 3029
Идентификатор редакции: 09 (я почти уверен, что это можно установить на все, что вы хотите.)
Идентификатор поставщика подсистемы: 10EB (это должно соответствовать идентификатору поставщика)
Идентификатор подсистемы: 0008 (честно говоря, я не уверен, что изменение его с 7 на 8 ничему не повредит)
коды классов. если вы выбираете устройство, которое не является сетевой картой, вам нужно будет изменить их.
Просто выберите из выпадающего списка устройство, которое вы хотите имитировать
вы можете найти множество идентификаторов устройств в Интернете по этой ссылке:
после того, как вы закончите, нажмите кнопку "ОК" в правом нижнем углу окна
откроется еще одно маленькое окно
, просто нажмите кнопку "Сгенерировать" внизу и дождитесь завершения.
Шаг 5:
Блокировка IP-ядра:
Мы хотим заблокировать "ядро", чтобы его можно было модифицировать в дальнейшем
, когда vivado соберет прошивку, она перезапишет некоторые измененные параметры.
чтобы предотвратить это, мы заблокируем его! теперь его нельзя изменить в vivado или с помощью vivado.
Внизу vivado вы должны увидеть список вкладок, одна из ни
х называется "Консоль Tcl"
, переключитесь на эту вкладку и введите это :
set_property is_managed false [get_files pcie_7x_0.xci]
Вы должны увидеть предупреждение в консоли о том, что файл заблокирован и теперь управляется пользователем.
также значок в дереве файлов должен иметь косую черту.
чтобы разблокировать файл (если вы хотите), выполните следующую команду :
set_property is_managed true [get_files pcie_7x_0.xci]
Пока что мы сделали следующее:
DSN : changed
Master abort flag : set
Auto status register : set
vendor ID : Changed
Device ID : Changed
Subsystem ID : Changed
Revision # : Changed
следующие шаги мне не ясны на 100%, и они были броском кубиков в зависимости от неудачи или успеха.
Шаг 6:
ПРОПУСТИТЕ ЭТО, ЕСЛИ ВЫ НЕ МЕНЯЕТЕ информацию о панели/PCIE/MSI
Меняете адрес панели:
(не стесняйтесь подключаться)
итак, теперь нам нужно изменить адрес панели
и блоки конфигурации 0x48 и 0x60
Итак, давайте откроем резервную копию visual studio (если вы ее закрыли)
И выполним поиск (ctrl+F) : "bar_0":
в списке должен быть указан файл с именем pcie_7x_0.xci
и @ строка 264 кода:
"bar_0": [ { "значение": "FFFFF000", "resolve_type": "сгенерировано", "использование": "все" } ],
Это адрес строки. и мы хотим его изменить.
вы можете имитировать физическое устройство, которое у вас есть под рукой, сбросив информацию в linux или с помощью RWeverything64
я не буду говорить вам, на что его установить, но значение по умолчанию - FFFFF000.
Теперь это можно изменить в исходных файлах, прежде чем создавать проект
, если вы обойдете и измените значение столбца везде, где вы увидите его упоминание
, выполнив поиск по фактическому адресу столбца "FFFFF000"
или просто измените его один раз здесь.
(Это может потребовать некоторых проб и ошибок в зависимости от вашей системы / устройства.)
Шаг 6.5:
ПРОПУСТИТЕ ЭТО, ЕСЛИ ВЫ НЕ МЕНЯЕТЕ информацию о панели/PCIE/MSIМеняете указатели MSI/PCI
(блоки 0x40 и 0x60, как упоминалось в других темах)
в vivado с открытым проектом нам нужно "Запустить синтез" на левой боковой панели.
это сгенерирует строки, которые мы хотели бы изменить.
дождитесь завершения, и после завершения должно появиться другое окно, вы можете просто нажать "Отмена".
(если вы знаете способ получше, скажите об этом!)
теперь в visual studio (на данный момент они оба должны быть по-прежнему открыты.)
давайте выполним поиск и найдем указатели MSI/PCIE.
вы можете найти их, выполнив поиск, например, по "PCIE_BASE_PTR", и найти все упоминания об этом.
Вот пример некоторого кода.
и давайте немного разберем его
Код:
parameter [7:0] MSI_BASE_PTR = 8'h48,
parameter MSI_CAP_64_BIT_ADDR_CAPABLE = "TRUE",
parameter [7:0] MSI_CAP_ID = 8'h05,
parameter integer MSI_CAP_MULTIMSGCAP = 0,
parameter integer MSI_CAP_MULTIMSG_EXTENSION = 0,
parameter [7:0] MSI_CAP_NEXTPTR = 8'h60,
parameter MSI_CAP_ON = "FALSE",
parameter MSI_CAP_PER_VECTOR_MASKING_CAPABLE = "TRUE",
parameter integer N_FTS_COMCLK_GEN1 = 255,
parameter integer N_FTS_COMCLK_GEN2 = 255,
parameter integer N_FTS_GEN1 = 255,
parameter integer N_FTS_GEN2 = 255,
parameter [7:0] PCIE_BASE_PTR = 8'h60,
parameter [7:0] PCIE_CAP_CAPABILITY_ID = 8'h10,
parameter [3:0] PCIE_CAP_CAPABILITY_VERSION = 4'h2,
parameter [3:0] PCIE_CAP_DEVICE_PORT_TYPE = 4'h0,
parameter [7:0] PCIE_CAP_NEXTPTR = 8'h9C,
parameter PCIE_CAP_ON = "TRUE",
значение MSI_BASE_PTR по умолчанию равно "8'h48".
тогда его следующий указатель (MSI_CAP_NEXTPTR) равен "8'h60"
, и если мы проверим PCIE_BASE_PTR, то это "8 'h60".
Таким образом, заглавные буквы MSI, по сути, просто переходят в заглавную букву PCIE
, а PCIE_CAP_NEXTPTR равен "8 'h9c"
(не стесняйтесь утверждать обратное, если вы знаете больше, чем я.)
итак, по сути, мы хотим изменить их таким образом, чтобы они были новыми значениями и отображались в другом месте (указатель).
но будьте осторожны, чтобы не ПЕРЕОПРЕДЕЛИТЬ ЧТО-либо ЕЩЕ, ИСПОЛЬЗУЯ УКАЗАТЕЛЬ
, я не буду говорить вам, на что это изменить, метод проб и ошибок - ваш друг, и я все еще нахожусь в процессе "проб и ошибок" этого.
((я почти на 99% уверен, что вам нужно изменить файл pcileech_cfg space.core, если вы вообще изменяете это.
для этого требуются мозги, которых у меня нет. Я бы хотел, чтобы кто-нибудь вмешался в это.
Поскольку все содержимое файла .core начинается с начала адреса строки "FFFFF", я полагаю, что оно должно соответствовать вашей фактической строке и указателям msi/pcie)
После того, как все это будет сделано. пришло время двигаться дальше.
Шаг 7:
Создание файла firmware .bin
внутри vivado мы хотим "сгенерировать поток битов" в нижней левой боковой панели.
это "создаст" файл firmware .bin
, просто нажмите "да" / "продолжить", пока он не начнет генерироваться, но не меняйте никаких параметров, если вы не знаете, что делаете.
ЭТО ЗАЙМЕТ НЕКОТОРОЕ ВРЕМЯ!!!
как только все будет завершено, вы найдете внутри bin-файл вашей прошивки :
PCIeSquirrel\pcileech_squirrel\pcileech_squirrel.runs\impl_1
он будет называться : pcileech_squirrel_top.bin
ЭТО ВАША ПРОШИВКА, ВЫ СДЕЛАЛИ ЭТО, VIVADO ВЫДАЛ КУЧУ ДЕРЬМОВЫХ ОШИБОК, НО ВЫ СДЕЛАЛИ ЭТО!
Я не несу ответственности, если вы испортите свой компьютер или DMA-карту. это не руководство по перепрошивке
(я уничтожил две материнские платы X670E, хвала системе гарантии best buy)
Последние темы в этом разделе:
- [Udemy] Paul Chin - Гейм Хакинг: Основы взлома игр с Cheat Engine (2021)
- [Infinite Skills] Реверс-инжиниринг и разработка эксплойтов. Часть 1
- Скрипт Лоадер [Key,UID,Auth - System]
- Скрипт Hwid Checker + анимации + ключ к Hwid + сброс Hwid
- Скрипт Hwid Checker + ключ привязка к Hwid + отправка в телеграм
- Скрипт Hwid Checker
- Приватный Курс по реверс-инжирингу - Курс от colby57
- Курс по реверс-инжирингу - Создание читов для игр
- Как создать chams в Unity
- Как в EFT получить информацию о игроке (K/D, LVL, etc...)