<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://game.etao.net/w/index.php?action=history&amp;feed=atom&amp;title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B</id>
	<title>逆向工程简介 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://game.etao.net/w/index.php?action=history&amp;feed=atom&amp;title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B"/>
	<link rel="alternate" type="text/html" href="https://game.etao.net/w/index.php?title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B&amp;action=history"/>
	<updated>2026-05-06T07:52:08Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://game.etao.net/w/index.php?title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B&amp;diff=233&amp;oldid=prev</id>
		<title>2023年7月2日 (日) 08:09 127.0.0.1</title>
		<link rel="alternate" type="text/html" href="https://game.etao.net/w/index.php?title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B&amp;diff=233&amp;oldid=prev"/>
		<updated>2023-07-02T08:09:50Z</updated>

		<summary type="html">&lt;p&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;zh&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;2023年7月2日 (日) 16:09的版本&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-l118&quot;&gt;第118行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第118行：&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;找工具总结起来就是：Google大法好。合理利用Google搜索语法，进行关键字搜索可以帮助你更快更好地找到合适工具。&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;找工具总结起来就是：Google大法好。合理利用Google搜索语法，进行关键字搜索可以帮助你更快更好地找到合适工具。&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; 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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ctf_Reverse&lt;/del&gt;]]&lt;/div&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;[[Category: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Reverse_Overview&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>127.0.0.1</name></author>
	</entry>
	<entry>
		<id>https://game.etao.net/w/index.php?title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B&amp;diff=232&amp;oldid=prev</id>
		<title>2023年7月2日 (日) 08:04 127.0.0.1</title>
		<link rel="alternate" type="text/html" href="https://game.etao.net/w/index.php?title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B&amp;diff=232&amp;oldid=prev"/>
		<updated>2023-07-02T08:04:45Z</updated>

		<summary type="html">&lt;p&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;zh&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;2023年7月2日 (日) 16:04的版本&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-l1&quot;&gt;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Navigation for Ctf Top|Reverse&lt;/del&gt;}}&lt;/div&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;Ctf_Wiki&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;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;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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l117&quot;&gt;第117行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第117行：&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;找工具总结起来就是：Google大法好。合理利用Google搜索语法，进行关键字搜索可以帮助你更快更好地找到合适工具。&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;找工具总结起来就是：Google大法好。合理利用Google搜索语法，进行关键字搜索可以帮助你更快更好地找到合适工具。&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;[[Category: Ctf_Reverse]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>127.0.0.1</name></author>
	</entry>
	<entry>
		<id>https://game.etao.net/w/index.php?title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B&amp;diff=219&amp;oldid=prev</id>
		<title>2023年7月1日 (六) 22:56 127.0.0.1</title>
		<link rel="alternate" type="text/html" href="https://game.etao.net/w/index.php?title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B&amp;diff=219&amp;oldid=prev"/>
		<updated>2023-07-01T22:56:02Z</updated>

		<summary type="html">&lt;p&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;zh&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;2023年7月2日 (日) 06:56的版本&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-l1&quot;&gt;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&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;{{Navigation for Ctf Top|Reverse}}&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;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;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;/table&gt;</summary>
		<author><name>127.0.0.1</name></author>
	</entry>
	<entry>
		<id>https://game.etao.net/w/index.php?title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B&amp;diff=218&amp;oldid=prev</id>
		<title>127.0.0.1：​创建页面，内容为“= 软件逆向工程简介 =  == 定义 ==  &lt;blockquote&gt;Reverse engineering, also called back engineering, is the process by which a man-made object is deconstructed to reveal its designs, architecture, or to extract knowledge from the object; ------ from [https://en.wikipedia.org/wiki/Reverse_engineering wikipedia] &lt;/blockquote&gt; 软件代码逆向主要指对软件的结构，流程，算法，代码等进行逆向拆解和分析。  == 应用领域 ==  主要…”</title>
		<link rel="alternate" type="text/html" href="https://game.etao.net/w/index.php?title=%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%AE%80%E4%BB%8B&amp;diff=218&amp;oldid=prev"/>
		<updated>2023-07-01T22:52:38Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“= 软件逆向工程简介 =  == 定义 ==  &amp;lt;blockquote&amp;gt;Reverse engineering, also called back engineering, is the process by which a man-made object is deconstructed to reveal its designs, architecture, or to extract knowledge from the object; ------ from [https://en.wikipedia.org/wiki/Reverse_engineering wikipedia] &amp;lt;/blockquote&amp;gt; 软件代码逆向主要指对软件的结构，流程，算法，代码等进行逆向拆解和分析。  == 应用领域 ==  主要…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 软件逆向工程简介 =&lt;br /&gt;
&lt;br /&gt;
== 定义 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Reverse engineering, also called back engineering, is the process by which a man-made object is deconstructed to reveal its designs, architecture, or to extract knowledge from the object; ------ from [https://en.wikipedia.org/wiki/Reverse_engineering wikipedia]&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
软件代码逆向主要指对软件的结构，流程，算法，代码等进行逆向拆解和分析。&lt;br /&gt;
&lt;br /&gt;
== 应用领域 ==&lt;br /&gt;
&lt;br /&gt;
主要应用于软件维护，软件破解，漏洞挖掘，恶意代码分析。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;ctf竞赛中的逆向&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== CTF竞赛中的逆向 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;涉及 Windows、Linux、Android 平台的多种编程技术，要求利用常用工具对源代码及二进制文件进行逆向分析，掌握 Android 移动应用APK文件的逆向分析，掌握加解密、内核编程、算法、反调试和代码混淆技术。 ------ 《全国大学生信息安全竞赛参赛指南》&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
=== 要求 ===&lt;br /&gt;
&lt;br /&gt;
* 熟悉如操作系统，汇编语言，加解密等相关知识&lt;br /&gt;
* 具有丰富的多种高级语言的编程经验&lt;br /&gt;
* 熟悉多种编译器的编译原理&lt;br /&gt;
* 较强的程序理解和逆向分析能力&lt;br /&gt;
&lt;br /&gt;
== 常规逆向流程 ==&lt;br /&gt;
&lt;br /&gt;
# 使用&amp;lt;code&amp;gt;strings/file/binwalk/IDA&amp;lt;/code&amp;gt;等静态分析工具收集信息，并根据这些静态信息进行&amp;lt;code&amp;gt;google/github&amp;lt;/code&amp;gt;搜索&lt;br /&gt;
# 研究程序的保护方法，如代码混淆，保护壳及反调试等技术，并设法破除或绕过保护&lt;br /&gt;
# 反汇编目标软件，快速定位到关键代码进行分析&lt;br /&gt;
# 结合动态调试，验证自己的初期猜想，在分析的过程中理清程序功能&lt;br /&gt;
# 针对程序功能，写出对应脚本，求解出flag&lt;br /&gt;
&lt;br /&gt;
=== 定位关键代码tips ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;分析控制流&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;控制流可以参见IDA生成的控制流程图（CFG），沿着分支循环和函数调用，逐块地阅读反汇编代码进行分析。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;利用数据、代码交叉引用&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;比如输出的提示字符串，可以通过数据交叉引用找到对应的调用位置，进而找出关键代码。代码交叉引用比如图形界面程序获取用户输入，就可以使用对应的windowsAPI函数，我们就可以通过这些API函数调用位置找到关键代码。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 逆向tips ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;编码风格&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;每个程序员的编码风格都有所不同，熟悉开发设计模式的同学能更迅速地分析出函数模块功能&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;集中原则&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;程序员开发程序时，往往习惯将功能相关的代码或是数据写在同一个地方，而在反汇编代码中也能显示出这一情况，因此在分析时可以查看关键代码附近的函数和数据。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;代码复用&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;代码复用情况非常普遍，而最大的源代码仓库Github则是最主要的来源。在分析时可以找一些特征（如字符串，代码风格等）在Github搜索，可能会发现类似的代码，并据此恢复出分析时缺失的符号信息等。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;七分逆向三分猜&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;合理的猜测往往能事半功倍，遇到可疑函数却看不清里面的逻辑，不妨根据其中的蛛丝马迹猜测其功能，并依据猜测继续向下分析，在不断的猜测验证中，或许能帮助你更加接近代码的真相。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;区分代码&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;拿到反汇编代码，必须能区分哪些代码是人为编写的，而哪些是编译器自动附加的代码。人为编写的代码中，又有哪些是库函数代码，哪些才是出题人自己写的代码，出题人的代码又经过编译器怎样的优化？我们无须花费时间在出题人以外的代码上，这很重要。如果当你分析半天还在库函数里乱转，那不仅体验极差，也没有丝毫效果。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;耐心&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;无论如何，给予足够的时间，总是能将一个程序分析地透彻。但是也不应该过早地放弃分析。相信自己肯定能在抽茧剥丝的过程中突破问题。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 动态分析 ===&lt;br /&gt;
&lt;br /&gt;
动态分析的目的在于定位关键代码后，在程序运行的过程中，借由输出信息（寄存器，内存变化，程序输出）等来验证自己的推断或是理解程序功能&lt;br /&gt;
&lt;br /&gt;
主要方法有：调试，符号执行，污点分析&lt;br /&gt;
&lt;br /&gt;
=== 算法和数据结构识别 ===&lt;br /&gt;
&lt;br /&gt;
* 常用算法识别&lt;br /&gt;
&lt;br /&gt;
如&amp;lt;code&amp;gt;Tea/XTea/XXTea/IDEA/RC4/RC5/RC6/AES/DES/IDEA/MD5/SHA256/SHA1&amp;lt;/code&amp;gt;等加密算法，大数加减乘除、最短路等传统算法&lt;br /&gt;
&lt;br /&gt;
* 常用数据结构识别&lt;br /&gt;
&lt;br /&gt;
如图、树、哈希表等高级数据结构在汇编代码中的识别。&lt;br /&gt;
&lt;br /&gt;
=== 代码混淆 ===&lt;br /&gt;
&lt;br /&gt;
比如使用&amp;lt;code&amp;gt;OLLVM&amp;lt;/code&amp;gt;，&amp;lt;code&amp;gt;movfuscator&amp;lt;/code&amp;gt;，&amp;lt;code&amp;gt;花指令&amp;lt;/code&amp;gt;，&amp;lt;code&amp;gt;虚拟化&amp;lt;/code&amp;gt;及&amp;lt;code&amp;gt;SMC&amp;lt;/code&amp;gt;等工具技术对代码进行混淆，使得程序分析十分困难。&lt;br /&gt;
&lt;br /&gt;
那么对应的也有反混淆技术，最主要的目的就是复原控制流。比如&amp;lt;code&amp;gt;模拟执行&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;符号执行&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 保护壳 ===&lt;br /&gt;
&lt;br /&gt;
保护壳类型有许多，简单的压缩壳可以归类为如下几种&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;unpack -&amp;amp;gt; execute&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;直接将程序代码全部解压到内存中再继续执行程序代码&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;unpack -&amp;amp;gt; execute -&amp;amp;gt; unpack -&amp;amp;gt; execute ...&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;解压部分代码，再边解压边执行&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;unpack -&amp;amp;gt; [decoder | encoded code] -&amp;amp;gt; decode -&amp;amp;gt; execute&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;程序代码有过编码，在解压后再运行函数将真正的程序代码解码执行&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
对于脱壳也有相关的方法，比如&amp;lt;code&amp;gt;单步调试法&amp;lt;/code&amp;gt;，&amp;lt;code&amp;gt;ESP定律&amp;lt;/code&amp;gt;等等&lt;br /&gt;
&lt;br /&gt;
=== 反调试 ===&lt;br /&gt;
&lt;br /&gt;
反调试意在通过检测调试器等方法避免程序被调试分析。比如使用一些API函数如&amp;lt;code&amp;gt;IsDebuggerPresent&amp;lt;/code&amp;gt;检测调试器，使用&amp;lt;code&amp;gt;SEH异常处理&amp;lt;/code&amp;gt;，时间差检测等方法。也可以通过覆写调试端口、自调试等方法进行保护。&lt;br /&gt;
&lt;br /&gt;
== 非常规逆向思路 ==&lt;br /&gt;
&lt;br /&gt;
非常规逆向题设计的题目范围非常之广，可以是任意架构的任意格式文件。&lt;br /&gt;
&lt;br /&gt;
* lua/python/java/lua-jit/haskell/applescript/js/solidity/webassembly/etc..&lt;br /&gt;
* firmware/raw bin/etc..&lt;br /&gt;
* chip8/avr/clemency/risc-v/etc.&lt;br /&gt;
&lt;br /&gt;
但是逆向工程的方法学里不惧怕这些未知的平台格式，遇到这样的非常规题，我们也有一些基本的流程可以通用&lt;br /&gt;
&lt;br /&gt;
=== 前期准备 ===&lt;br /&gt;
&lt;br /&gt;
* 阅读文档。快速学习平台语言的方法就是去阅读官方文档。&lt;br /&gt;
* 官方工具。官方提供或建议的工具必然是最合适的工具&lt;br /&gt;
* 教程。在逆向方面，也许有许多前辈写出了专门针对该平台语言的逆向教程，因此也可以快速吸收这其中的知识。&lt;br /&gt;
&lt;br /&gt;
=== 找工具 ===&lt;br /&gt;
&lt;br /&gt;
主要找&amp;lt;code&amp;gt;文件解析工具&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;反汇编器&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;调试器&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;反编译器&amp;lt;/code&amp;gt;。其中&amp;lt;code&amp;gt;反汇编器&amp;lt;/code&amp;gt;是必需的，&amp;lt;code&amp;gt;调试器&amp;lt;/code&amp;gt;也包含有相应的反汇编功能，而对于&amp;lt;code&amp;gt;反编译器&amp;lt;/code&amp;gt;则要自求多福了，得之我幸失之我命。&lt;br /&gt;
&lt;br /&gt;
找工具总结起来就是：Google大法好。合理利用Google搜索语法，进行关键字搜索可以帮助你更快更好地找到合适工具。&lt;/div&gt;</summary>
		<author><name>127.0.0.1</name></author>
	</entry>
</feed>