<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Карта памяти]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8772&amp;type=atom" />
	<updated>2018-06-29T10:25:58Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=8772</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=126547#p126547" />
			<content type="html"><![CDATA[<div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Спасибо.<br />Сейчас попробую.</p><br /><br /><p>Later:<br />Объем: 0x500000&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; 5 mB<br />Время работы: 2979&nbsp; &nbsp; &nbsp;; 3 sec&nbsp; &nbsp; &nbsp; &nbsp;1,6 mB/sec</p><p>Только почему-то считало 4 mB вместо 5-и. (судя по адресу)<br />А-а, понял, просто у блокнота пусто после 4-х mB.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>#SingleInstance,Force
#NoEnv
SetFormat, Integer, H
onexit,exit
SetBatchLines,-1

starttime:=a_tickcount

ProcessName = notepad.exe         ; Имя процесса.
StartAdres:=ReadAddress:= 0x0             ; Адрес, откуда читать.
ReadSizeL = 1280             ; Сколько байт читать.
ReadSize = 4096
EndAdres:=ReadAddress+ReadSizeL*ReadSize
new:=1
savefile=map_%ProcessName%_%new%.txt

    tooltip,Начальный адрес: %StartAdres%`nТекущий адрес: &quot;%ReadAddress%&quot;`nКонечный адрес: %EndAdres%`nEsc - для отмены.
;file := FileOpen(savefile, &quot;w&quot;)
;if !IsObject(file)
;{
;    MsgBox Can&#039;t open &quot;%FileName%&quot; for writing.
;    return
;}


map=__________ | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F`n______________________________________________________`n%ReadAddress% |

VarSetCapacity(Buf, ReadSize, 0)  ; Буфер, куда считывать.

PROCESS_VM_READ = 0x10            ; Права на процесс.

Process, Exist, %ProcessName%     ; Поиск процесса.

If(!ErrorLevel) {
  MsgBox, Процесс не найден.
  ExitApp
}

PID := ErrorLevel                 ; Идентификатор процесса будет в ErrorLevel.

hProcess := DllCall(&quot;OpenProcess&quot;, UInt, PROCESS_VM_READ
                                 , Int, False
                                 , UInt, PID)
If(!hProcess)
{
  MsgBox, Не удалось открыть процесс.
  ExitApp
}

loop,%ReadSizeL%  ; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
{
  c++
  if c&gt;5000
  {
    c=
    tooltip,Начальный адрес: %StartAdres%`nТекущий адрес: &quot;%ReadAddress%&quot;`nКонечный адрес: %EndAdres%`nEsc - для отмены.
  }

  Ret := DllCall(&quot;ReadProcessMemory&quot;, UInt, hProcess
                                    , UInt, ReadAddress
                                    , UInt, &amp;Buf
                                    , UInt, ReadSize
                                    , UInt, 0)

  If(Ret)
  {
    loop,%ReadSize%
    {
      char:=  NumGet(Buf, a_index-1, &quot;UChar&quot;)
;tooltip, % char &quot;`n&quot; a_index  ; Считывание из буфера в переменную.
      stringtrimleft,char,char,2
      StringLen,len,char
      if len&lt;2
        char:=&quot; 0&quot;char
      else
        char:=&quot; &quot;char

      r++
      if r&lt;17
        map.=char
      else
      {
        r=1
        map.=&quot;`n&quot; ReadAddress+a_index-1 &quot; | &quot; char
      }
    }
    fileappend,%map%,%savefile%
    map=
  }

ReadAddress+=ReadSize
}
map.=&quot;`n`n&quot;
fileappend,%map%,%savefile%
gosub,exit

~esc::
exitapp
return

exit:
DllCall(&quot;CloseHandle&quot;, UInt, hProcess) ; Освобождение хэндла процесса.
SetFormat, Integer, D
end:=a_tickcount-starttime
Msgbox,Время работы: %end%
exitapp

</code></pre></div></div></div></div></div><p>Спасибо ТС-у за эту тему, давно хотел с памятью поработать.</p></blockquote></div><p>&nbsp; А можно добавить ещё и запись в файл в&nbsp; изначальном виде? Насколько я понимаю осуществлять поиск каких-то слов, значений в нём, посредством того же &quot;Cheat engine&quot; будет намного проще, чем в текстовом файле, где всё разбито на строки. А потом уже можно будет сопоставить с конкретными адресами.<br /> Это же не должно сильно замедлить весь процесс?</p>]]></content>
			<author>
				<name><![CDATA[Next]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=28517</uri>
			</author>
			<updated>2018-06-29T10:25:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=126547#p126547</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102728#p102728" />
			<content type="html"><![CDATA[<p><strong>Kurskador</strong><br />Вынужден опять в теме писать, т.к. на почту вам ответить не получается.<br /></p><div class="quotebox"><blockquote><p>Это письмо создано автоматически сервером Mail.Ru, отвечать на него не нужно.</p><p>К сожалению, Ваше письмо не может быть доставлено одному или нескольким получателям:</p></blockquote></div><p>Другого какого-то ящика нет у вас?</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-04-19T14:33:59Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102728#p102728</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102723#p102723" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Kurskador пишет:</cite><blockquote><p>Я всё ещё жду ответа.</p></blockquote></div><p>Если вы про личное сообщение, то я на него ответил ещё 13 числа. Ответ должен был прийти к вам на почту, которую вы указали, когда здесь регистрировались.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-04-19T07:38:25Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102723#p102723</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102417#p102417" />
			<content type="html"><![CDATA[<p>OFF:<br />Вообще-то человек, который организовал, уже не поддерживает. Форум общий, взносы общие, поддержкой занимаемся безвозмездно. Одним словом, коммунизм. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2016-04-09T06:23:41Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102417#p102417</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102414#p102414" />
			<content type="html"><![CDATA[<p>В такой постановке вопроса он вообще получается ничей, полная сумма взносов идёт только на хостинг, и ни копейки в карман владельца, а по сути человека который это всё организовал и <span class="bbu">поддерживает</span> безвозмездно.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-04-08T16:46:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102414#p102414</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102412#p102412" />
			<content type="html"><![CDATA[<p>Имеете в виду какие-нибудь предложения по форуму? Нет, речь не об этом. Тут был вопрос, может ли взнос в поддержку форума быть для меня мотивацией к написанию кода. Я и говорю, что если бы форум был мой, тогда да, но он же не мой.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-04-08T15:43:53Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102412#p102412</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102404#p102404" />
			<content type="html"><![CDATA[<p><strong>YMP</strong>, если есть предложения, то Вы можете мне написать личным сообщением.</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2016-04-08T12:44:38Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102404#p102404</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102401#p102401" />
			<content type="html"><![CDATA[<p>Мог бы, если бы я был владельцем форума.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-04-08T09:43:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102401#p102401</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102400#p102400" />
			<content type="html"><![CDATA[<p>А идея вообще-то интересная. Не знаю может ли мой, ранее осуществленный взнос в поддержку форума, считаться некоторым вкладом в мотивацию? Если может, то мне было бы очень интересно владеть таким инструментом, который может получиться на основе изложенных идей.</p>]]></content>
			<author>
				<name><![CDATA[Foma]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31521</uri>
			</author>
			<updated>2016-04-08T07:14:23Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102400#p102400</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102194#p102194" />
			<content type="html"><![CDATA[<p>Жаль. Спасибо, что ответили, а то я почему-то подумал, что раз расспросили, то пытаетесь реализовать, и уже губу раскатал и в таком виде ждал.</p>]]></content>
			<author>
				<name><![CDATA[Kurskador]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33207</uri>
			</author>
			<updated>2016-04-01T10:13:36Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102194#p102194</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102193#p102193" />
			<content type="html"><![CDATA[<p>Пока что не было возможности заняться. Кроме того хотел уточнить: вас устроит только бесплатная помощь? Если да, то не уверен, что мне хватит мотивации. &quot;Нет уже того энтузиазма&quot;. (с) К сожалению. <img src="//forum.script-coding.com/img/smilies/hmm.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-04-01T09:18:04Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102193#p102193</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102186#p102186" />
			<content type="html"><![CDATA[<p>YMP, я правильно понимаю, что Вы пытаетесь как-то реализовать обсуждаемое? Или я напрасно жду и надеюсь?</p>]]></content>
			<author>
				<name><![CDATA[Kurskador]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33207</uri>
			</author>
			<updated>2016-04-01T07:19:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102186#p102186</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102150#p102150" />
			<content type="html"><![CDATA[<p>Я представляю себе код, в который можно нужное вписать имя процесса. Старт чтения должен начинаться по нажатию горячих клавиш. Время чтения, чем меньше тем лучше, но желательно не более 3-5 секунд. В конечном результате хотелось бы иметь то же самое, что дают уже имеющие здесь скрипты: текстовый файл с разбивкой по рядам адресов и их значений. Можно как-то явно отделять одни части памяти от других, делать маленькие отступы в местах нечитаемой памяти. Как это будет конкретно осуществлено мне не принципиально. Наверное сначала быстрее читать в бинарном виде, как-то сохранять, а потом уже преобразовывать в описанный выше вид. Длина паузы в работе программы на преобразование и запись в удобном виде, если она не превысит 30-50 секунд,&nbsp; значения не имеет.</p><p>Наверное не стоит разбивать файлы на части, чтобы было удобнее искать что нужно. Есть программы, которые читают большие текстовый файлы без проблем.</p><p>Это моё представление о том как было бы здорово. Если Вы сможете осуществить это хотя бы в каком-то приближении, то я буду очень благодарен.</p>]]></content>
			<author>
				<name><![CDATA[Kurskador]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33207</uri>
			</author>
			<updated>2016-03-30T14:57:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102150#p102150</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102149#p102149" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Kurskador пишет:</cite><blockquote><p>Нет шансов?</p></blockquote></div><p>Есть несколько вопросов. Как должна выглядеть нужная вам для этого функция? Т.е. какие аргументы вы хотите ей передавать при вызове и что она должна возвращать. Во-вторых, как должен выглядеть снимок памяти? Можно сохранить его в бинарный файл или надо преобразовать в хекс-строку и как-то отформатировать для удобства чтения.</p><p>Всю память сохранять явно не нужно, т.к. вам требуются только данные, причём не все, а только те, которые можно изменять.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-03-30T14:32:30Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102149#p102149</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Карта памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=102140#p102140" />
			<content type="html"><![CDATA[<p>Не в курсе как это делается. И боюсь, что это сильно нарушит всё, что будет происходить потом, а это важно. Хотелось бы иметь инструмент не мешающий работе программы.</p>]]></content>
			<author>
				<name><![CDATA[Kurskador]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33207</uri>
			</author>
			<updated>2016-03-30T13:17:35Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=102140#p102140</id>
		</entry>
</feed>
