<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Карта памяти]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=8772</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8772&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Карта памяти».]]></description>
		<lastBuildDate>Fri, 29 Jun 2018 10:25:58 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=126547#p126547</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Next)]]></author>
			<pubDate>Fri, 29 Jun 2018 10:25:58 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=126547#p126547</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102728#p102728</link>
			<description><![CDATA[<p><strong>Kurskador</strong><br />Вынужден опять в теме писать, т.к. на почту вам ответить не получается.<br /></p><div class="quotebox"><blockquote><p>Это письмо создано автоматически сервером Mail.Ru, отвечать на него не нужно.</p><p>К сожалению, Ваше письмо не может быть доставлено одному или нескольким получателям:</p></blockquote></div><p>Другого какого-то ящика нет у вас?</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Tue, 19 Apr 2016 14:33:59 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102728#p102728</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102723#p102723</link>
			<description><![CDATA[<div class="quotebox"><cite>Kurskador пишет:</cite><blockquote><p>Я всё ещё жду ответа.</p></blockquote></div><p>Если вы про личное сообщение, то я на него ответил ещё 13 числа. Ответ должен был прийти к вам на почту, которую вы указали, когда здесь регистрировались.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Tue, 19 Apr 2016 07:38:25 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102723#p102723</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102417#p102417</link>
			<description><![CDATA[<p>OFF:<br />Вообще-то человек, который организовал, уже не поддерживает. Форум общий, взносы общие, поддержкой занимаемся безвозмездно. Одним словом, коммунизм. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sat, 09 Apr 2016 06:23:41 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102417#p102417</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102414#p102414</link>
			<description><![CDATA[<p>В такой постановке вопроса он вообще получается ничей, полная сумма взносов идёт только на хостинг, и ни копейки в карман владельца, а по сути человека который это всё организовал и <span class="bbu">поддерживает</span> безвозмездно.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Fri, 08 Apr 2016 16:46:40 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102414#p102414</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102412#p102412</link>
			<description><![CDATA[<p>Имеете в виду какие-нибудь предложения по форуму? Нет, речь не об этом. Тут был вопрос, может ли взнос в поддержку форума быть для меня мотивацией к написанию кода. Я и говорю, что если бы форум был мой, тогда да, но он же не мой.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Fri, 08 Apr 2016 15:43:53 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102412#p102412</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102404#p102404</link>
			<description><![CDATA[<p><strong>YMP</strong>, если есть предложения, то Вы можете мне написать личным сообщением.</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Fri, 08 Apr 2016 12:44:38 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102404#p102404</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102401#p102401</link>
			<description><![CDATA[<p>Мог бы, если бы я был владельцем форума.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Fri, 08 Apr 2016 09:43:48 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102401#p102401</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102400#p102400</link>
			<description><![CDATA[<p>А идея вообще-то интересная. Не знаю может ли мой, ранее осуществленный взнос в поддержку форума, считаться некоторым вкладом в мотивацию? Если может, то мне было бы очень интересно владеть таким инструментом, который может получиться на основе изложенных идей.</p>]]></description>
			<author><![CDATA[null@example.com (Foma)]]></author>
			<pubDate>Fri, 08 Apr 2016 07:14:23 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102400#p102400</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102194#p102194</link>
			<description><![CDATA[<p>Жаль. Спасибо, что ответили, а то я почему-то подумал, что раз расспросили, то пытаетесь реализовать, и уже губу раскатал и в таком виде ждал.</p>]]></description>
			<author><![CDATA[null@example.com (Kurskador)]]></author>
			<pubDate>Fri, 01 Apr 2016 10:13:36 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102194#p102194</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102193#p102193</link>
			<description><![CDATA[<p>Пока что не было возможности заняться. Кроме того хотел уточнить: вас устроит только бесплатная помощь? Если да, то не уверен, что мне хватит мотивации. &quot;Нет уже того энтузиазма&quot;. (с) К сожалению. <img src="//forum.script-coding.com/img/smilies/hmm.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Fri, 01 Apr 2016 09:18:04 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102193#p102193</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102186#p102186</link>
			<description><![CDATA[<p>YMP, я правильно понимаю, что Вы пытаетесь как-то реализовать обсуждаемое? Или я напрасно жду и надеюсь?</p>]]></description>
			<author><![CDATA[null@example.com (Kurskador)]]></author>
			<pubDate>Fri, 01 Apr 2016 07:19:29 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102186#p102186</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102150#p102150</link>
			<description><![CDATA[<p>Я представляю себе код, в который можно нужное вписать имя процесса. Старт чтения должен начинаться по нажатию горячих клавиш. Время чтения, чем меньше тем лучше, но желательно не более 3-5 секунд. В конечном результате хотелось бы иметь то же самое, что дают уже имеющие здесь скрипты: текстовый файл с разбивкой по рядам адресов и их значений. Можно как-то явно отделять одни части памяти от других, делать маленькие отступы в местах нечитаемой памяти. Как это будет конкретно осуществлено мне не принципиально. Наверное сначала быстрее читать в бинарном виде, как-то сохранять, а потом уже преобразовывать в описанный выше вид. Длина паузы в работе программы на преобразование и запись в удобном виде, если она не превысит 30-50 секунд,&nbsp; значения не имеет.</p><p>Наверное не стоит разбивать файлы на части, чтобы было удобнее искать что нужно. Есть программы, которые читают большие текстовый файлы без проблем.</p><p>Это моё представление о том как было бы здорово. Если Вы сможете осуществить это хотя бы в каком-то приближении, то я буду очень благодарен.</p>]]></description>
			<author><![CDATA[null@example.com (Kurskador)]]></author>
			<pubDate>Wed, 30 Mar 2016 14:57:08 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102150#p102150</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102149#p102149</link>
			<description><![CDATA[<div class="quotebox"><cite>Kurskador пишет:</cite><blockquote><p>Нет шансов?</p></blockquote></div><p>Есть несколько вопросов. Как должна выглядеть нужная вам для этого функция? Т.е. какие аргументы вы хотите ей передавать при вызове и что она должна возвращать. Во-вторых, как должен выглядеть снимок памяти? Можно сохранить его в бинарный файл или надо преобразовать в хекс-строку и как-то отформатировать для удобства чтения.</p><p>Всю память сохранять явно не нужно, т.к. вам требуются только данные, причём не все, а только те, которые можно изменять.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Wed, 30 Mar 2016 14:32:30 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102149#p102149</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Карта памяти]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=102140#p102140</link>
			<description><![CDATA[<p>Не в курсе как это делается. И боюсь, что это сильно нарушит всё, что будет происходить потом, а это важно. Хотелось бы иметь инструмент не мешающий работе программы.</p>]]></description>
			<author><![CDATA[null@example.com (Kurskador)]]></author>
			<pubDate>Wed, 30 Mar 2016 13:17:35 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=102140#p102140</guid>
		</item>
	</channel>
</rss>
