Статья DMA GUIDE [ Переведено ]

crytality

Исследователь
Сообщения
30
Реакции
10
Привет, Пользователь AnonymCheats. Цель этого руководства - показать пользователям, как начать создавать собственную пользовательскую прошивку в процессе создания прошивки происходит так много дезинформации и мошенничества просто потому, что люди могут продавать прошивку за сотни долларов Всякий раз, когда кто-то задает вопрос, он "читает документы, братан", но не предоставляет ссылку на правильный документ. это ссылка на документ, если вы хотите прочитать документ.

Для просмотра скрытого содержимого вы должны авторизироваться или зарегистрироваться

в идеале вы хотите изменить эти пункты, перечисленные ниже, чтобы избежать обнаружения антихита. это не будет руководством, которое поможет вам пройти Face-it / VGK, если только кто-то не захочет поделиться информацией. (похоже, все старые способы исправлены, и я просто не знаю как.) -DSN -Идентификаторы подсистем -Идентификатор устройства -Идентификатор поставщика -Редакция -Блоки 0x40 и 0x60 (часто упоминаются) -Адрес строки -Автоматическая очистка реестра статуса / Флаг главного прерывания (Я БЫ ХОТЕЛ, ЧТОБЫ ДРУГИЕ ЛЮДИ ВНЕСЛИ СВОЙ ВКЛАД В БОЛЕЕ ПРОСТЫЕ / КАЧЕСТВЕННЫЕ СПОСОБЫ СДЕЛАТЬ ЭТО) Итак, давайте перейдем к делу.

^
|
FAQ

Шаг 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)



ПЕРЕВОД МОЖЕТ БЫТЬ НЕ ПРАВИЛЕН. НАПИШИТЕ, ЕСЛИ ОН ЯВЛЯЕТСЯ НЕ ПРАВИЛЬНЫМ.
 
Верх Низ