Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Как вытащить имя персонажа

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 24.10.2012, 17:04   #1
Заблокирован
 Разведчик
Аватар для coder007
 
coder007 на правильном путиcoder007 на правильном пути
Регистрация: 20.10.2012
Сообщений: 2
Популярность: 178
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 2 сообщениях
 
Arrow Как вытащить имя персонажа

Все адреса знаю, смещение для ника 0x66C. Но вот там написано, что размер этого поля 8 байт типа wchar_t. Пытаюсь считывать в wchar_t 8 байт - выдает 1 символ иероглиф. Как правильно считать ник? И почему он занимает 8 байт, когда в нике мож быть до 9 символов?
  Ответить с цитированием
Старый 24.10.2012, 19:46   #2
-= Илитный Мастер =-
 Главнокомандующий
Аватар для AEBus
 
AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(
Регистрация: 27.03.2009
Сообщений: 1,666
Популярность: 67466
Сказал(а) спасибо: 246
Поблагодарили 1,560 раз(а) в 691 сообщениях
 
По умолчанию Re: Как вытащить имя персонажа

0x66C + 0x0, string, unicode
и да, причём здесь 8 байт?

Последний раз редактировалось AEBus; 24.10.2012 в 20:18.
  Ответить с цитированием
Старый 25.10.2012, 20:45   #3
Заблокирован
 Разведчик
Аватар для coder007
 
coder007 на правильном путиcoder007 на правильном пути
Регистрация: 20.10.2012
Сообщений: 2
Популярность: 178
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 2 сообщениях
 
По умолчанию Re: Как вытащить имя персонажа

Все равно я не могу выцепить ник, получаю только один иероглиф, пишу в студии (2008). Считываю 4 байта в DWORD, потом конвертирую в wchar_t, потом в стринг и вывожу - итог 䗔. Как правильно делать?
  Ответить с цитированием
Старый 26.10.2012, 09:34   #4
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Как вытащить имя персонажа

Цитата:
Сообщение от coder007Посмотреть сообщение
Все равно я не могу выцепить ник, получаю только один иероглиф, пишу в студии (2008). Считываю 4 байта в DWORD, потом конвертирую в wchar_t, потом в стринг и вывожу - итог 䗔. Как правильно делать?

позвольте поинтересоваться всей струтурой чтения с памяти надеюсь вы считываете не просто со смещения 0x66C
  Ответить с цитированием
Старый 26.10.2012, 14:51   #5
 Разведчик
Аватар для Геймeр
 
Геймeр неизвестен в этих краяхГеймeр неизвестен в этих краях
Регистрация: 19.08.2012
Сообщений: 13
Популярность: -176
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Как вытащить имя персонажа

Цитата:
Сообщение от GinreyПосмотреть сообщение
позвольте поинтересоваться всей струтурой чтения с памяти надеюсь вы считываете не просто со смещения 0x66C

Скорее всего, так и есть.
Считывать нужно с адреса, находящегося в 0х66С. Т е в записи это +0х66С +0, в массив wchar_t[20].
Преобразовывать ни во что не нужно, если только в анси. первые 9 знаков или менее (на каждый знак по 2 байта) составляют имя, последние два байта окончание строки /0x00 /0x00
Тут исход на билдере, поковыряй, для начинающего много интересного.
  Ответить с цитированием
Старый 26.10.2012, 15:23   #6
Заблокирован
 Разведчик
Аватар для coder007
 
coder007 на правильном путиcoder007 на правильном пути
Регистрация: 20.10.2012
Сообщений: 2
Популярность: 178
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 2 сообщениях
 
По умолчанию Re: Как вытащить имя персонажа

Все разобрался в чем прикол. Просто когда смотрел смещения, думал - нахрена там еще 0x0 прибавлять? А оказывается не зря там этот нолик указан , в остальном сам разобрался.
  Ответить с цитированием
Старый 30.10.2012, 13:11   #7
 Разведчик
Аватар для wolfser
 
wolfser никому не известный тип
Регистрация: 05.10.2012
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как вытащить имя персонажа

В студии 2010 организовал так:
Код:
             //функция чтения памяти:
wchar_t* Client::Read_Char(UInt32 addr)
{
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,pid); // открываем процесс
wchar_t value[40];
ReadProcessMemory(hProcess,(void*)addr,&value,(40),0);  // считываем значение по заданному адресу
  CloseHandle(hProcess); // закроем процесс
  return value; // вернём считанное значение
}

                //заталкивание имени в System::string^
String^ str;
for(int i=0; i<=20 ; i++)
str=str+((Read_Char(NmAdr()+0x0)+i)->ToString());
както так
  Ответить с цитированием
Старый 02.11.2012, 01:55   #8
-= Илитный Мастер =-
 Главнокомандующий
Аватар для AEBus
 
AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(
Регистрация: 27.03.2009
Сообщений: 1,666
Популярность: 67466
Сказал(а) спасибо: 246
Поблагодарили 1,560 раз(а) в 691 сообщениях
 
По умолчанию Re: Как вытащить имя персонажа

Цитата:
Сообщение от coder007Посмотреть сообщение
думал - нахрена там еще 0x0 прибавлять?

я ведь не зря указал во втором посте + 0x0
потому что это не нахрена а на пользу, потому что это идентифицирует текст как юникод, а все имена в пв написаны в юникоде. не ты первый не учитываешь это, не ты последний, к сожалению.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Обменяю] Персонажа на Бразилии на Персонажа Wild Lotus Chepari Perfect World 4 12.01.2012 11:26
[Помогите!] вытащить видео yada Школа Читера 13 10.08.2011 23:30
Как вытащить GIF из DDS? smpsv Общение и обсуждение Perfect World 19 26.05.2011 23:27

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 10:50.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net