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

Читать чат

-

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

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

Ответ
 
Опции темы
Старый 12.01.2012, 00:15   #1
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию Читать чат

Подскажите пожайлуста, если не трудно - с примером, как прочитать групчат?
  Ответить с цитированием
Старый 12.01.2012, 00:58   #2
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Re: Читать чат

gurin, взять оффсеты чата и вычитать весь блок целиком, отделить зеленые сообщения от других по коду цвета, который присутствует в сообщении.
  Ответить с цитированием
Пользователь сказал cпасибо:
gurin (12.01.2012)
Старый 12.01.2012, 01:35   #3
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию Re: Читать чат

я попробовал, текст что-то не удалось получить, потому и просил с примером.
  Ответить с цитированием
Старый 12.01.2012, 01:43   #4
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Re: Читать чат

Код:
int tmpMessageCount = ReadInt16FromMemory(ChatMessagesCount);

for (int i = 0; i < tmpMessageCount; i++)
{
    messageBase = ReadInt32FromMemory(ReadInt32FromMemory(ChatStartAddress) + ((i * 0xC) + 0x8));
    if (messageBase != 0)
    {
        Messages.Add(ReadStringFromMemory(messageBase + 0x0, 4096));
    }
}
нашел среди старых проектов.
  Ответить с цитированием
Старый 12.01.2012, 01:46   #5
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию Re: Читать чат

я делаю так:

Код:
      Chat := TStringList.Create;
      ....
      ReadProcessMemory(hProcess, ptr(GamerOffsets[ChatNumber]), @ChatLen, sizeof(ChatLen), BytesCountOfRead);
      ReadProcessMemory(hProcess, ptr(GamerOffsets[ChatStart]), @start_addr, sizeof(start_addr), BytesCountOfRead);
      ReadProcessMemory(hProcess, ptr(GamerOffsets[ChatEnd]), @end_addr, sizeof(end_addr), BytesCountOfRead);
      addr := start_addr;
      for strNo := 1 to ChatLen do
      begin
        str[0] := #0;
        i := 0;
        try
          repeat
            ReadProcessMemory(hProcess, ptr(addr), @ch, 2, BytesCountOfRead);
            str[i] := ch;
            addr := addr + 2;
            inc(i);
          until (ord(ch) = 0) or (i >= High(str));
        except
        end;
        if i >= 1 then
          str[i] := #0;
        st := Str;
        Chat.Add(st);
      end;
но получаю какие-то зякозябры
количество сообщений в чате верное

Добавлено через 16 минут
получил 1-ю строку нормально (при i=0)

но при i=1 вот тут
messageBase = ReadInt32FromMemory(ReadInt32FromMemory(ChatStartA ddress) + ((i * 0xC) + 0x8));
получаю значение messageBase = $FFFFFFFF

это же простое мат выражение? или как-то иначе тут все расшифровывается?

просто непонятно зачем в
ReadStringFromMemory(messageBase + 0x0, 4096)
+ 0x0 стоит...

Добавлено через 25 минут
нашел ошибку вот тут
messageBase = ReadInt32FromMemory(ReadInt32FromMemory(ChatStartA ddress) + ((i * 0xC) + 0x8));
надо

messageBase = ReadInt32FromMemory(ReadInt32FromMemory(ChatStartA ddress) + ((i * 0x1C) + 0x8));

Добавлено через 28 минут
Может кому пригодится, привожу рабочий код на Delphi

Код:
      ReadProcessMemory(hProcess, ptr(ChatStartAddr), @start_addr, sizeof(start_addr), BytesCountOfRead);
      ReadProcessMemory(hProcess, ptr(ChatNumberAddr), @ChatLen, sizeof(ChatLen), BytesCountOfRead);
      for strNo := 0 to ChatLen-1 do
      begin
        str[0] := #0;
        i := 0;
        try
          ReadProcessMemory(hProcess, ptr(start_addr + ((StrNo * $1C) + $8)), @addr, sizeof(addr), BytesCountOfRead);
          if addr <> 0 then
          repeat
            ReadProcessMemory(hProcess, ptr(addr), @ch, 2, BytesCountOfRead);
            str[i] := ch;
            addr := addr + 2;
            inc(i);
          until (ord(ch) = 0) or (i >= High(str));
        except
        end;
        if i >= 1 then
          str[i] := #0;
        st := Str;
        Chat.Add(st);
      end;

Последний раз редактировалось gurin; 12.01.2012 в 08:42. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 12.01.2012, 11:05   #6
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Re: Читать чат

Цитата:
Сообщение от gurinПосмотреть сообщение
нашел ошибку вот тут

Никто не говорил, что оффсеты актуальные.

Цитата:
Сообщение от TBX1nПосмотреть сообщение
нашел среди старых проектов.

  Ответить с цитированием
Старый 12.01.2012, 18:54   #7
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию Re: Читать чат

Да, я понимаю. Просто уточнил где была неточность на тот случай, если кто будет озадачен такой же проблемой.

ОГРОМНОЕ спасибо за помощь.
  Ответить с цитированием
Старый 12.01.2012, 20:38   #8
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Re: Читать чат

gurin, всегда пожалуйста.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Читать!!!! qwe1qwe1qwe1 Вопросы и ответы, обсуждение 1 01.04.2011 19:12
Прочитать! JIominat Общение и обсуждение CrossFire 3 27.12.2010 04:42
ЧИТАТЬ! Chiteruga Общение и обсуждение, архив Point Blank 3 01.06.2010 12:16

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

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

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