<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://course.secsem.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%282019%29%2F%D0%A0%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3</id>
	<title>Введение в практическую безопасность (2019)/Реверс-инжиниринг - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://course.secsem.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%282019%29%2F%D0%A0%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3"/>
	<link rel="alternate" type="text/html" href="https://course.secsem.ru/w/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(2019)/%D0%A0%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3&amp;action=history"/>
	<updated>2026-05-08T10:54:30Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://course.secsem.ru/w/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(2019)/%D0%A0%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3&amp;diff=160&amp;oldid=prev</id>
		<title>WGH: раздел про gdb</title>
		<link rel="alternate" type="text/html" href="https://course.secsem.ru/w/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(2019)/%D0%A0%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3&amp;diff=160&amp;oldid=prev"/>
		<updated>2019-03-13T18:22:35Z</updated>

		<summary type="html">&lt;p&gt;раздел про gdb&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 18:22, 13 марта 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l116&quot;&gt;Строка 116:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 116:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://www.hex-rays.com/products/decompiler/manual/interactive.shtml Полный список] на официальном сайте.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://www.hex-rays.com/products/decompiler/manual/interactive.shtml Полный список] на официальном сайте.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== gdb ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;С &#039;&#039;&#039;gdb&#039;&#039;&#039; можно познакомиться по любому туториалу в интернете.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Однако в отладке приложений без исходников есть некоторая специфика, и тут могут быть особенно полезные такие команды:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;code&amp;gt;b * 0x400155&amp;lt;/code&amp;gt; - поставить брэйкпоинт на адрес.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;code&amp;gt;p (char*)$rdi&amp;lt;/code&amp;gt; - напечатать как строку содержимое памяти, на которую указывает регистр &amp;lt;code&amp;gt;rdi&amp;lt;/code&amp;gt;. См. также [https://en.wikipedia.org/wiki/X86_calling_conventions#System_V_AMD64_ABI статью про соглашения вызовов на Википедии].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;code&amp;gt;help x&amp;lt;/code&amp;gt; - почитать справку по команде &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, которая очень полезна для изучения содержимого памяти.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;code&amp;gt;x/10i $pc&amp;lt;/code&amp;gt; - посмотреть несколько инструкций вперед.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;code&amp;gt;layout asm&amp;lt;/code&amp;gt; - переключиться в псевдографический режим с листингом ассемблерных команд.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Примеры с занятия ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Примеры с занятия ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>WGH</name></author>
	</entry>
	<entry>
		<id>https://course.secsem.ru/w/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(2019)/%D0%A0%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3&amp;diff=155&amp;oldid=prev</id>
		<title>WGH: /* Примеры с занятия */ пример валидного ключа</title>
		<link rel="alternate" type="text/html" href="https://course.secsem.ru/w/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(2019)/%D0%A0%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3&amp;diff=155&amp;oldid=prev"/>
		<updated>2019-03-13T11:44:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Примеры с занятия: &lt;/span&gt; пример валидного ключа&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:44, 13 марта 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l122&quot;&gt;Строка 122:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 122:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Исходник первого примера: [[Media:2019 reverse example 1.c]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Исходник первого примера: [[Media:2019 reverse example 1.c]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Пример валидного ключа: &amp;lt;code&amp;gt;AAAAA-BBBBB-CCCCC-B334C&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Алгоритм проверки ключа на Python:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Алгоритм проверки ключа на Python:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>WGH</name></author>
	</entry>
	<entry>
		<id>https://course.secsem.ru/w/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(2019)/%D0%A0%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3&amp;diff=152&amp;oldid=prev</id>
		<title>WGH: Новая страница: «== strings ==  Выводит константные строки, которые есть в бинарнике. Строки определяются эврис…»</title>
		<link rel="alternate" type="text/html" href="https://course.secsem.ru/w/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D1%83%D1%8E_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(2019)/%D0%A0%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3&amp;diff=152&amp;oldid=prev"/>
		<updated>2019-03-13T11:00:06Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «== strings ==  Выводит константные строки, которые есть в бинарнике. Строки определяются эврис…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== strings ==&lt;br /&gt;
&lt;br /&gt;
Выводит константные строки, которые есть в бинарнике. Строки определяются эвристикой, поэтому часто бывают ложные срабатывания. IDA тоже умеет определять строки.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ strings reverse_example_1&lt;br /&gt;
/lib64/ld-linux-x86-64.so.2&lt;br /&gt;
libcrypto.so.1.0.0&lt;br /&gt;
_ITM_deregisterTMCloneTable&lt;br /&gt;
/lib64/ld-linux-x86-64.so.2&lt;br /&gt;
libcrypto.so.1.0.0&lt;br /&gt;
_ITM_deregisterTMCloneTable&lt;br /&gt;
__gmon_start__&lt;br /&gt;
_Jv_RegisterClasses&lt;br /&gt;
_ITM_registerTMCloneTable&lt;br /&gt;
MD5_Final&lt;br /&gt;
MD5_Init&lt;br /&gt;
MD5_Update&lt;br /&gt;
libc.so.6&lt;br /&gt;
fopen&lt;br /&gt;
__stack_chk_fail&lt;br /&gt;
fgets&lt;br /&gt;
malloc&lt;br /&gt;
stderr&lt;br /&gt;
fwrite&lt;br /&gt;
__sprintf_chk&lt;br /&gt;
__libc_start_main&lt;br /&gt;
free&lt;br /&gt;
GLIBC_2.3.4&lt;br /&gt;
GLIBC_2.4&lt;br /&gt;
GLIBC_2.2.5&lt;br /&gt;
OPENSSL_1.0.0&lt;br /&gt;
D$(1&lt;br /&gt;
T$(dH3&lt;br /&gt;
AUATH&lt;br /&gt;
D$h1&lt;br /&gt;
|$hdH3&amp;lt;%(&lt;br /&gt;
x[]A\A]&lt;br /&gt;
AWAVA&lt;br /&gt;
AUATL&lt;br /&gt;
[]A\A]A^A_&lt;br /&gt;
%02X&lt;br /&gt;
./cd-key.txt&lt;br /&gt;
failed to open CD key file&lt;br /&gt;
failed to read CD key file&lt;br /&gt;
invalid cdkey&lt;br /&gt;
Good job!&lt;br /&gt;
;*3$&amp;quot;&lt;br /&gt;
.shstrtab&lt;br /&gt;
.interp&lt;br /&gt;
.note.ABI-tag&lt;br /&gt;
.gnu.hash&lt;br /&gt;
.dynsym&lt;br /&gt;
.dynstr&lt;br /&gt;
.gnu.version&lt;br /&gt;
.gnu.version_r&lt;br /&gt;
.rela.dyn&lt;br /&gt;
.rela.plt&lt;br /&gt;
.init&lt;br /&gt;
.plt.got&lt;br /&gt;
.text&lt;br /&gt;
.fini&lt;br /&gt;
.rodata&lt;br /&gt;
.eh_frame_hdr&lt;br /&gt;
.eh_frame&lt;br /&gt;
.init_array&lt;br /&gt;
.fini_array&lt;br /&gt;
.jcr&lt;br /&gt;
.dynamic&lt;br /&gt;
.got.plt&lt;br /&gt;
.data&lt;br /&gt;
.bss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== strace ==&lt;br /&gt;
&lt;br /&gt;
Выводит трассу системных вызовов. Полезно, чтобы определить, какие файлы читает программа, и как вообще взаимодействует с внешним миром (в том числе сеть).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ strace ./reverse_example_1&lt;br /&gt;
...&lt;br /&gt;
openat(AT_FDCWD, &amp;quot;./cd-key.txt&amp;quot;, O_RDONLY) = 3&lt;br /&gt;
fstat(3, {st_mode=S_IFREG|0644, st_size=24, ...}) = 0&lt;br /&gt;
read(3, &amp;quot;AAAAA-BBBBB-CCCCC-DDDDD\n&amp;quot;, 4096) = 24&lt;br /&gt;
write(2, &amp;quot;invalid cdkey\n&amp;quot;, 14)         = 14&lt;br /&gt;
exit_group(1)                           = ?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IDA Pro ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный дизассемблер и декомпилятор.&lt;br /&gt;
&lt;br /&gt;
=== Шорткаты ===&lt;br /&gt;
&amp;lt;center style=&amp;quot;font-size: 500%&amp;quot;&amp;gt;&lt;br /&gt;
{{клавиша|F5}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
==== IDA ====&lt;br /&gt;
* {{клавиша|P}} — создать функцию, начиная с текущей позиции курсора&lt;br /&gt;
* {{клавиша|F5}} — декомпилировать функцию&lt;br /&gt;
* {{клавиша|Enter}} — проследовать по курсору (например, перейти к функции или массиву)&lt;br /&gt;
* {{клавиша|Esc}} — назад (противоположность {{клавиша|Enter}})&lt;br /&gt;
* {{клавиша|X}} — показать ссылки на то, что под курсором (на функцию, переменную, строку, etc.)&lt;br /&gt;
* {{клавиша|C}} — переопределить байты, начиная с курсора, как код.&lt;br /&gt;
* {{клавиша|D}} — переопределить байты, начиная с курсора, как данные (последовательные нажатия переключают размер переменной byte-word-dword(-qword))&lt;br /&gt;
* {{клавиша|A}} — переопределить байты, начиная с курсора, как строку&lt;br /&gt;
* {{клавиша|R}} — переопределить число в инструкции как строку (&amp;lt;code&amp;gt;mov rdx, 335F47414C465Fh&amp;lt;/code&amp;gt; -&amp;gt; &amp;lt;code&amp;gt;mov rdx, &amp;#039;3_GALF_&amp;#039;&amp;lt;/code&amp;gt;)&lt;br /&gt;
Неплохой [https://radare.gitbooks.io/radare2book/content/debugger/migration.html#shortcuts список] из доков по radare2.&lt;br /&gt;
&lt;br /&gt;
==== Hex-Rays ====&lt;br /&gt;
* {{клавиша|N}} — переименовать&lt;br /&gt;
* {{клавиша|Y}} — поменять тип&lt;br /&gt;
** Может показаться, что с помощью {{клавиша|Y}} можно и переименовать, или с помощью {{клавиша|N}} задать тип, однако это не так&lt;br /&gt;
* {{клавиша|Enter}} — проследовать по курсору&lt;br /&gt;
* {{клавиша|Esc}} — назад &lt;br /&gt;
* {{клавиша|Tab}} — перейти к данному месту из декомпилированного в дизассемблированный код и обратно&lt;br /&gt;
&lt;br /&gt;
[https://www.hex-rays.com/products/decompiler/manual/interactive.shtml Полный список] на официальном сайте.&lt;br /&gt;
&lt;br /&gt;
== Примеры с занятия ==&lt;br /&gt;
&lt;br /&gt;
Бинарники, которые были рассмотрены на семинаре: [[Media:2019 reverse examples.zip]].&lt;br /&gt;
&lt;br /&gt;
Исходник первого примера: [[Media:2019 reverse example 1.c]]&lt;br /&gt;
&lt;br /&gt;
Алгоритм проверки ключа на Python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import string&lt;br /&gt;
import hashlib&lt;br /&gt;
&lt;br /&gt;
def validate_key(s):&lt;br /&gt;
    if len(s) != 23:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    for i, c in enumerate(s):&lt;br /&gt;
        if i in (5, 11, 17):&lt;br /&gt;
            if c != &amp;#039;-&amp;#039;:&lt;br /&gt;
                return False&lt;br /&gt;
        else:&lt;br /&gt;
            if c not in (string.ascii_uppercase + string.digits):&lt;br /&gt;
                return False&lt;br /&gt;
&lt;br /&gt;
    m = hashlib.md5()&lt;br /&gt;
    m.update(s[:17].encode(&amp;#039;ascii&amp;#039;))&lt;br /&gt;
    m.update(bytes([0x4d,0x67,0xde,0xb9,0x60,0xce,0x38,0x30,0xe1,0xb7,0x40,0xe5,0xeb,0x39,0xe0,0x15]))&lt;br /&gt;
&lt;br /&gt;
    return s[18:] == m.hexdigest()[:5].upper()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>WGH</name></author>
	</entry>
</feed>