<?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>https://forum.script-coding.com/viewtopic.php?id=9909</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9909&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Поиск в памяти процесса».]]></description>
		<lastBuildDate>Wed, 01 Aug 2018 14:31:43 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=127636#p127636</link>
			<description><![CDATA[<p><a href="http://forum.script-coding.com/misc.php?action=pun_attachment&amp;item=1491&amp;preview">http://forum.script-coding.com/misc.php … mp;preview</a></p>]]></description>
			<author><![CDATA[null@example.com (slavik26092001)]]></author>
			<pubDate>Wed, 01 Aug 2018 14:31:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=127636#p127636</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86122#p86122</link>
			<description><![CDATA[<p>Какие именно? Ptr и Int — это не переменные, а типы следующих за ними через запятую значений (параметров вызываемой функции). О них говорится в описании DllCall.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Mon, 25 Aug 2014 13:43:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86122#p86122</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86121#p86121</link>
			<description><![CDATA[<p>Понять переменные в смысле отследить откуда они появились в скрипте и что они делают. С buf теперь понятно откуда он.</p>]]></description>
			<author><![CDATA[null@example.com (Странникх)]]></author>
			<pubDate>Mon, 25 Aug 2014 12:35:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86121#p86121</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86113#p86113</link>
			<description><![CDATA[<p>Т.е. как откуда взято buf? Вот он создаётся:<br /></p><div class="codebox"><pre><code>
VarSetCapacity(buf, numBytes, 0)
</code></pre></div><p>Что касается &quot;понять переменные&quot;, то я не совсем понимаю, что это значит.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Mon, 25 Aug 2014 08:55:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86113#p86113</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86110#p86110</link>
			<description><![CDATA[<p>Функционал я понял как он работает. Я не могу понять много переменных, находящихся в круглых скобках. Например, Ptr или Int, откуда взято Buf и т.д.</p>]]></description>
			<author><![CDATA[null@example.com (Странникх)]]></author>
			<pubDate>Mon, 25 Aug 2014 08:20:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86110#p86110</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86103#p86103</link>
			<description><![CDATA[<p>Имена использованных функций говорят сами за себя, по-моему. Открывается процесс, читается из его памяти число или строка, закрывается процесс. Уточните, что именно вам не понятно.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Mon, 25 Aug 2014 03:35:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86103#p86103</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86097#p86097</link>
			<description><![CDATA[<p>Решил все таки открыть для себя, что такое DllCall и как ей пользоваться. Начать решил с чтения памяти в процессе, поэтому попробовал разобраться в некоторых темах с кодом по чтению памяти:<br /><a href="http://forum.script-coding.com/viewtopic.php?id=8735">http://forum.script-coding.com/viewtopic.php?id=8735</a><br /><a href="http://forum.script-coding.com/viewtopic.php?id=9705">http://forum.script-coding.com/viewtopic.php?id=9705</a><br /><a href="http://forum.script-coding.com/viewtopic.php?id=7735">http://forum.script-coding.com/viewtopic.php?id=7735</a><br />Надо сказать, что больше половины кодов в этих ссылках мне не понятны. Нашел оптимальную для начала изучения тему:<br /><a href="http://forum.script-coding.com/viewtopic.php?id=8241">http://forum.script-coding.com/viewtopic.php?id=8241</a><br />На основе кода, написанным <strong>creature.ws</strong> решил понять как читать память нужного мне процесса, заранее зная нужное значение.<br /></p><div class="codebox"><pre><code>processName := &quot;имя процесса&quot;
readAddress := 0x2ECD0254

Numpad0::
    if ProcessReadMemory(readAddress, processName) &lt; 10
        Click 123 234
    return


ProcessReadMemory(address, processIDorName, type := &quot;Int&quot;, numBytes := 4) {
    VarSetCapacity(buf, numBytes, 0)

    Process Exist, %processIDorName%
    if !processID := ErrorLevel
        throw Exception(&quot;Invalid process name or process ID:`n`n&quot;&quot;&quot; . processIDorName . &quot;&quot;&quot;&quot;)

    if !processHandle := DllCall(&quot;OpenProcess&quot;, &quot;Int&quot;, 24, &quot;UInt&quot;, 0, &quot;UInt&quot;, processID, &quot;Ptr&quot;)
        throw Exception(&quot;Failed to open process.`n`nError code:`t&quot; . A_LastError)

    result := DllCall(&quot;ReadProcessMemory&quot;, &quot;Ptr&quot;, processHandle, &quot;Ptr&quot;, address, &quot;Ptr&quot;, &amp;buf, &quot;Ptr&quot;, numBytes, &quot;PtrP&quot;, numBytesRead, &quot;UInt&quot;)

    if !DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, processHandle, &quot;UInt&quot;) &amp;&amp; !result
        throw Exception(&quot;Failed to close process handle.`n`nError code:`t&quot; . A_LastError)

    if !result
        throw Exception(&quot;Failed to read process memory.`n`nError code:`t&quot; . A_LastError)

    if !numBytesRead
        throw Exception(&quot;Read 0 bytes from the`n`nprocess:`t&quot; . processIDorName . &quot;`naddress:`t&quot; . address)

    return (type = &quot;Str&quot;)
        ? StrGet(&amp;buf, numBytes)
        : NumGet(buf, type)
}</code></pre></div><p>Однако тут тоже не все шибко понятно, не смотря на то, что я прочитал статью Функции. Поэтому прошу кого-нибудь из опытных переписать данный код с комментариями на каждое действие, чтобы понять как, что, когда этот код делает.</p><p>Добавлено:<br />Наткнулся на удивительную вещь - <a href="https://github.com/Kalamity/SC2-MacroTrainer/blob/master/Lib/classMemory.ahk">https://github.com/Kalamity/SC2-MacroTr … Memory.ahk</a><br />Обновляется и по сей день. Вроде бы там есть тоже самое, что мне нужно, но пока не могу понять как это применить.</p>]]></description>
			<author><![CDATA[null@example.com (Странникх)]]></author>
			<pubDate>Sun, 24 Aug 2014 22:05:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86097#p86097</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86012#p86012</link>
			<description><![CDATA[<p>Если он от раза к разу не меняется, тогда поищите темы про чтение памяти другого процесса. Код для этого тут постили неоднократно.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Thu, 21 Aug 2014 09:07:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86012#p86012</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86008#p86008</link>
			<description><![CDATA[<p>Я нашел нужный указатель. Что теперь дальше? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (LeGoo)]]></author>
			<pubDate>Thu, 21 Aug 2014 07:11:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86008#p86008</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=85998#p85998</link>
			<description><![CDATA[<p>Попробуйте найти указатель на адрес с помощью Artmoney, и поищите на этом форуме тему (ключевое слово: указатель).</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Thu, 21 Aug 2014 02:35:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=85998#p85998</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Поиск в памяти процесса]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=85994#p85994</link>
			<description><![CDATA[<p>В общем есть процесс <strong>proc.exe</strong>, он использует <strong>programm.dll</strong>, мне нужно найти адрес значения &quot;<strong>Остальное: </strong>&quot;, который при каждом перезапуске программы меняется. Не могу сообразить, как найти сразу в AHK адрес текста в памяти и поместить его в переменную, ручками уже устал.</p><p>Начинать поиск нужно с <strong>0x019F2018</strong> по <strong>0x01A00000</strong>.<br />За ранее спасибо! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (LeGoo)]]></author>
			<pubDate>Wed, 20 Aug 2014 18:02:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=85994#p85994</guid>
		</item>
	</channel>
</rss>
