Author Topic: Работает ли readmem под Windows XP x32 (и вообще)?  (Read 2441 times)

0 Members and 1 Guest are viewing this topic.

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Скрипт отлажен в Win 7 x64. Clikerman v4.13.010b. Readmem  работает.
Запускаю под XP. 
Cheat Engine - базовый адрес и смещения показывает. Pid - определяется правильно. HEX-адрес передается правильный. Readmem по этому адресу возвращает 0.
Проверил в XP на виртуалке, то же 0.

У кого нибудь Readmem под XP работает?
« Last Edit: March 28, 2018, 08:23:41 PM by Johnny »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #1 on: March 21, 2018, 11:36:00 PM »
 проверь любой другой адрес без смещений и указателей в любом другом процессе, в том же кликермане. 
 проверь в версии 4.12, там немного другой синтаксис, readmem там не функция.

 скорее всего проблема в самом приложении из которого требуется читать. встречался с таким, картина таже, артмани видит, а кликер не видит. но в моем случае от замены винды результат не менялся. победить кликерманом так и не сумел, решил, что какаято защита в игре.
 кстати автоит в этом случае штатными функциями так же не хотел читать память. после некоторых усилий все же получилось считать автоитом и передать результат кликеру через ини. помог SETPRIVILEGE из RMemory.au3 . как этот SETPRIVILEGE работает и что делает... -  все сложно  :(.

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #2 on: March 22, 2018, 10:08:25 AM »
XP снес поставил Win10 x32. Readmem выдает правильные значения. Потом проверю в виртуалке на XP. Считывать со стороны не желательно, там частота обновления координат 80 мс.

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #3 on: March 23, 2018, 11:59:21 AM »
Проверил
Clickermann v4.12.001   READMEM в ХРx32 работает правильно.
Clickermann v4.13.010b READMEM в 7x64 и 10x64 работает правильно. В XPx32 выдает 0.

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #4 on: March 24, 2018, 12:57:43 PM »
я вообще че то не могу заставить ни одну версию теперь работать с памятью. херня какая то.
даже 4.11 не работает!
ни просто, ни если сначала сделать writemem в этот адрес. вообще ничего не понимаю. как могла сломаться версия 2014 года то?

проверял правда тока на Win7 x64, зато на двух абсолютно разных
кто что думает? у кого работает? дайте пример рабочий

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #5 on: March 24, 2018, 01:40:01 PM »
Протестил у себя.

Code: (clickermann) [Select]
// 4.12.001
READMEM(2664, "009379B0", 4)
LOGWRITE ($_return1)
HALT

Code: (clickermann) [Select]
// 4.13.10b
$a = READMEM(2664, 0x009379B0, 4)
LOGWRITE ($a)
HALT

На XP 4.12.001 выдает верное значение, 4.13.10b выдает 0
На Win 7 64b обе версии работают исправно.


Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #6 on: March 24, 2018, 02:06:03 PM »
срабатывает 1 раз из 50 ! пробовал даже кликер на самом же себе!
открываю кликер. пишу код. работает (правда только чтение). ура? закрываю.
открываю пишу тоже самое уже вообще нихрена не работает! секунду назад работало, и уже нет. ниче не поменялось же.

Code: (clickermann) [Select]
// 4.13.10b

$h = hgetpid( $_hwnd_self)
//$h = 0

print("H:", $h)

//writemem($h, 0x009379B0, 666, 4)

$a = READMEM($h, 0x009379B0, 4)
LOGWRITE ($a)
HALT

со сторонними приложениями та же история. в какие то вообще ничего не проходит, в какие то все нормально проходит.
на разрядность походу всем пофигу.

ниче не могу понять!


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #7 on: March 24, 2018, 02:39:36 PM »
Все еще страньше  :o
Только что все работало нормально а теперь при закрытии кликера вписываются неверные координаты окна редактора, из за чего окно появляется не пойми где  :o
Code: [Select]
; позиция окна
left =3014733
top =7143523

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

Ps.

не знаю что это было, восстановил конфиг файлы из бэкапа, и все стало нормально.

« Last Edit: March 24, 2018, 02:53:59 PM by Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #8 on: March 25, 2018, 11:23:27 PM »
А может это как-то сказывается борьба с уязвимостями Meltdown и Spectre?
Ну, типа залатали путём частичного запрета предсказаний, заодно и в чтение вмешались запретив где можно.

Это так, на правах бреда  :)


ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #9 on: March 26, 2018, 12:16:23 PM »
А почему только в XP? Могу идею подкинуть.
Ошибка может быть связана с защитой региона памяти.
В cheat engine 6.7 в общей таблице есть глюк. Если читать данные из некоторых регионов памяти, через смещение типа 0+число. Результат в таблице где смещения задаются показывает правильно, а в общей таблице 0.

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #10 on: March 26, 2018, 07:20:24 PM »
да причем тут ХР. у меня и на семерке не работает нихрена. теперь.
честно говоря эт темный лес пока для меня ибо небыло необходимости писать до кучи свой artmoney. ну есть функции и ладно. даже помогли кому то - и хорошо.
учитывая общую бажность работа явно осуществляется не очень корректно. от того и нестабильные результаты даже при одинаковых входных данных.

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

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #11 on: March 27, 2018, 12:10:54 AM »
не знаю что там у кого не работает  :-\ . на вин7 и вин10  работал и работает READMEM без нареканий как в 4.12 так и в 4.13. использую часто, и в разных приложениях. запись не тестировал.
Code: (clickermann) [Select]
//v. 4.13.010b

FOR($a=0,$a<22,2)
   print(CHAR (readmem(hgetpid($_hwnd_self), 0x74666980+$a,1)) )   
END_CYC

halt

в логе:
Code: [Select]
0:04:54 C
0:04:54 l
0:04:54 i
0:04:54 c
0:04:54 k
0:04:54 e
0:04:54 r
0:04:54 m
0:04:54 a
0:04:54 n
0:04:54 n

те же адреса памяти (0x74666980 и далее) во всех версиях вроде как выдают одни и те же значения, только написание различно. проверил в 4.7 , 4.12, 4.13 , везде работает.

ради интереса проверил на виртуальной ХР, и действительно в версии 4.13 чтение перестает работать.

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #12 on: March 27, 2018, 05:46:10 AM »
а быть такого не должно
там идет банальный вызов винапишной ReadProcessMemory(). буквально одна строчка кода.
но видимо нужна не одна

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Работает ли readmem под Windows XP x32?
« Reply #13 on: March 28, 2018, 08:15:26 PM »
кароче, игрался чтоб хотя бы самому понять. ну в 13-й я немного промахнулся с типизацией данных и оно сломалось в XP. сайчас вроде работает, я проверял.
выяснилось что мое "ниче не работает!!1" связано скорее с моей исключительной удачей тыкаться с проверкой по несуществующим или защищенным адресам
поэтому для тестов написал такой вот скриптец
Code: (clickermann) [Select]
#name "MemCheck"

define($cnt1, 0)
define($cnt2, 0)

$proc  = 4660   // ID процесса; из диспетчера (или с формы)

$memKB =  62000  // объем памяти процесса в Кб.; из диспетчера

$addr = rnd(1, 1024 * $memKB)

$res = readmem($proc, $addr, 4)

if ($res != 0)
   print("[", $addr, "] ", $res)
   
   $data = $res - 1
   
   writemem($proc, $addr, $data, 4)
   
   $res = readmem($proc, $addr, 4)
   print("[", $addr, "] ", $res)
   
   if ($res = $data)
      print(" writemem OK")
      $cnt2 = $cnt2 + 1
   else
      print(" writemem fail")
   end_if
   
   $cnt1 = $cnt1 + 1
   print("------ (",$cnt1,"/", $cnt2, ") ------")
end_if

waitms(100)
который просто долбится по рандомному адресу в процессе, ищет там ненулевое значение (что уже свидетельствует о работоспособности функции чтения) и перезаписывает его с проверкой (что опять же свидетельствует). так вот ряд программ отрабатывал на 99% успешно. ряд на 50%. ряд вообще не хотел сотрудничать. из чего я могу сделать вывод, что ну ооооочень индивидуально для каждого конкретного случая. часть адресов недоступена извне вообще. часть доступна только для чтения. кароч все очень сложна.
кто там любит поиграться с артмани и читенжн, отпишитесь плес заработало оно в хр или нет.

такие дела. пост актуален для последнего билда 4.13.011b из темы с бета версиями

p.s. ахтунг! пример скрипта почти сразу приводит к крашу испытуемого процесса.
« Last Edit: March 28, 2018, 08:22:43 PM by Johnny »

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: Работает ли readmem под Windows XP x32 (и вообще)?
« Reply #14 on: March 29, 2018, 09:32:39 AM »
Заработало, большое спасибо. Пойду верну XP.
Не нравится мне 10, на ней макросы сбиваются. И вообще она за мной следит.
« Last Edit: March 29, 2018, 09:34:43 AM by ya12 »