HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5471  
Старый 03.09.2021, 23:49
{$FANTOMCODER .cs}
Участник форума
Регистрация: 23.08.2021
Сообщений: 212
С нами: 2487976

Репутация: 48
По умолчанию

Можно ли в последней Visual Studio 2019 создавать .sf плагины и .dll(.asi) плагины?
 
Ответить с цитированием

  #5472  
Старый 03.09.2021, 23:49
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

можно
 
Ответить с цитированием

  #5473  
Старый 05.09.2021, 12:14
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

Репутация: 113
По умолчанию

как на плюсах подменить структуру из памяти, на свою?
 
Ответить с цитированием

  #5474  
Старый 05.09.2021, 12:49
Musaigen
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами: 4272230

Репутация: 183


По умолчанию

Цитата:
Сообщение от legendabrn  

как на плюсах подменить структуру из памяти, на свою?
Так же, как и любое значение из памяти, через reinterpret_cast, наверно.
 
Ответить с цитированием

  #5475  
Старый 05.09.2021, 13:01
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

Репутация: 113
По умолчанию

Цитата:
Сообщение от Musaigen  

Так же, как и любое значение из памяти, через reinterpret_cast, наверно.
Код:





Код:
#pragma pack(push, 1)
struct CAR_MOD_INFO
{
    int test;
} mTest[24];
#pragma pack(pop)

*reinterpret_cast(0xABCFFF + 0xAB) = *reinterpret_cast(&mTest[1]);


пытался таким способом, безуспешно
 
Ответить с цитированием

  #5476  
Старый 05.09.2021, 13:08
Musaigen
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами: 4272230

Репутация: 183


По умолчанию

Цитата:
Сообщение от legendabrn  

Код:





Код:
#pragma pack(push, 1)
struct CAR_MOD_INFO
{
    int test;
} mTest[24];
#pragma pack(pop)

*reinterpret_cast(0xABCFFF + 0xAB) = *reinterpret_cast(&mTest[1]);


пытался таким способом, безуспешно
Попробуй так
Код:
*reinterpret_cast(addr) = &mTest[1];
 
Ответить с цитированием

  #5477  
Старый 05.09.2021, 13:09
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Цитата:
Сообщение от legendabrn  

Код:





Код:
#pragma pack(push, 1)
struct CAR_MOD_INFO
{
    int test;
} mTest[24];
#pragma pack(pop)

*reinterpret_cast(0xABCFFF + 0xAB) = *reinterpret_cast(&mTest[1]);


пытался таким способом, безуспешно
Лучше опиши всю задачу, что тебе надо сделать
 
Ответить с цитированием

  #5478  
Старый 05.09.2021, 13:16
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

Репутация: 113
По умолчанию

Цитата:
Сообщение от Dark_Knight  

Лучше опиши всю задачу, что тебе надо сделать
В структуре хранится переменная типа char, но она позволяет хранить значения до 255, я подумал а почему бы не заменить на свою структуру с int и все будет заебумба))

Просмотрев в IDA где используется данная структура, на работоспособность никак не должна повлиять

Цитата:
Сообщение от Musaigen  

Попробуй так
Код:
*reinterpret_cast(addr) = &mTest[1];
не работает
 
Ответить с цитированием

  #5479  
Старый 05.09.2021, 14:01
#Northn
Флудер
Регистрация: 10.08.2017
Сообщений: 2,659
С нами: 4609424

Репутация: 183


По умолчанию

Цитата:
Сообщение от legendabrn  

я подумал а почему бы не заменить на свою структуру с int и все будет заебумба))
не будет, оффсеты сместятся
 
Ответить с цитированием

  #5480  
Старый 06.09.2021, 11:28
.deserve
Познающий
Регистрация: 06.09.2018
Сообщений: 32
С нами: 4045092

Репутация: 23
По умолчанию

Цитата:
Сообщение от legendabrn  

В структуре хранится переменная типа char, но она позволяет хранить значения до 255, я подумал а почему бы не заменить на свою структуру с int и все будет заебумба))
Просмотрев в IDA где используется данная структура, на работоспособность никак не должна повлиять

не работает
Проверь защиту страницы памяти по этому адресу.

Если это адрес структуры, то ты не сможешь поменять структуру по нему, т.к выравнивание по границам страниц похерится.

А если это адрес указателя, то ты можешь записать в него адрес начала своей структуры и читать оттуда по 4 байта. Но всё остальное всё равно будет читать оттуда по 1 байту. При этом, если у тебя будет прямой порядок байт (big endian), то когда по этому адресу будут читать 1 байт, то будет читаться старший байт из 4 байтового целочисленного типа. А если little endian, как на большинстве x86, то всё будет ок: младший байт и будет первым.

И еще мне не понятно: нахера тебе для этой структуры выравнивание упаковки в 1 байт, если у тебя там 1 4 байтовый мембер. А по дефолту выравнивание стоит на 8 байт.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.