从零开始的程序逆向之路 第一章——认识OD(Ollydbg)以及常用汇编扫盲

\u672c\u6587\u7ae0\u5c5e\u4e8e\u539f\u521b\u6587\u7ae0,\u672a\u7ecf\u5141\u8bb8\u7981\u6b62\u8f6c\u8f7d

0x00 \u5e8f\u8a00 :
1.\u81ea\u4ece\u4e0a\u6b21\u7b14\u8005\u8c03\u620f\u5b8c\u76d7\u53d6\u6587\u4ef6\u5bc6\u7801\u5927\u9ed1\u5ba2\u540e,\u8fd9\u6fc0\u53d1\u4e86\u7b14\u8005\u7684\u521b\u4f5c\u70ed\u60c5,\u5c31\u7ed9\u5927\u5bb6\u5e26\u6765\u7a0b\u5e8f\u9006\u5411\u7cfb\u5217,\u5f53\u7136\u6709\u4e00\u4e9b\u5730\u65b9\u8fd8\u662f\u6709\u6240\u6b20\u7f3a,\u8bf7\u5927\u5bb6\u5728\u79c1\u804a\u4e2d\u6307\u51fa\u6211\u6587\u4e2d\u7684\u9519\u8bef,\u6211\u4f1a\u52a0\u4ee5\u6539\u6b63\u3002

2.\u672c\u7bc7\u6559\u7a0b\u6bcf\u7bc7\u6587\u7ae0\u90fd\u4f1a\u5728\u9644\u4ef6\u4e2d\u7ed9\u51fa\u4e00\u4e2a\u7a0b\u5e8f\u9006\u5411\u4f8b\u5b50,\u6240\u7528\u5230\u7684\u77e5\u8bc6\u90fd\u4f1a\u5728\u8be5\u7bc7\u6587\u7ae0\u4e2d\u4f53\u73b0,\u6709\u5174\u8da3\u7684\u540c\u5b66\u53ef\u4ee5\u81ea\u5df1\u5b9e\u8df5\u5b9e\u8df5

3.\u4e3a\u4ec0\u4e48\u8981\u5b66\u4e60\u9006\u5411\u7834\u89e3?
a.\u4f60\u53ef\u4ee5\u6c49\u5316\u4e00\u4e9b\u8f6f\u4ef6\u7ed9\u4e88\u5927\u5bb6\u4f7f\u7528
b.\u4f60\u53ef\u4ee5\u8fdb\u884c\u75c5\u6bd2\u5206\u6790
c.\u5916\u6302\u8f85\u52a9\u7684\u7814\u7a76
d.\u7a0b\u5e8f\u7684\u7834\u89e3

4.\u8fd9\u5957\u7cfb\u5217\u7b14\u8005\u6240\u7528\u7684\u5de5\u5177\u5df2\u7ecf\u88ab\u7b14\u8005\u6574\u7406\u4e3a\u5de5\u5177\u5305,\u94fe\u63a5\u5730\u5740: https://bbs.ichunqiu.com/thread-43019-1-1.html

5.\u7834\u89e3\u7684\u73af\u5883\u8981\u6c42\u7531\u4e8e\u4e00\u4e9b\u7a0b\u5e8f\u7684\u7f16\u5199\u8005\u4e0d\u671f\u671b\u81ea\u5df1\u7684\u7a0b\u5e8f\u88ab\u7834\u89e3(\u5176\u5b9e\u8c01\u4e5f\u4e0d\u671f\u671b),\u6240\u4ee5\u5c31\u91c7\u53d6\u4e86\u4e00\u4e9b\u6bd4\u8f83\u6781\u7aef\u7684\u65b9\u6cd5,\u6bd4\u5982:\u683c\u5f0f\u5316\u60a8\u7684\u91cd\u8981\u8d44\u6599 \u2026\u2026

\u6240\u4ee5\uff0c\u7a0b\u5e8f\u7834\u89e3\u7684\u65f6\u5019\u9700\u8981\u7528\u5230\u865a\u62df\u673a\uff0c\u865a\u62df\u673a\u63a8\u8350\u4f7f\u7528vmware

\u5bc6\u7801: 9954
\u865a\u62df\u673a\u5b89\u88c5\u6559\u7a0b: https://jingyan.baidu.com/article/25648fc1c467eb9191fd00d6.html
\u7cfb\u7edf\u955c\u50cf\u4e0b\u8f7d\u5730\u5740:
\u53ea\u9700\u8981\u628a\u60a8\u9700\u8981\u7528\u5230\u7684\u955c\u50cf\u7684\u4e0b\u8f7d\u94fe\u63a5\u653e\u5230\u8fc5\u96f7\u91cc\u5373\u53ef
\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014
0x01 \u9996\u5148\u8ba4\u8bc6\u4e00\u4e0b OD(Ollydbg)
\u6253\u5f00OD\u754c\u9762,\u5448\u73b0\u51fa\u4e0b\u56fe\u7684\u7a97\u53e3\u5206\u5e03,\u8fd9\u91cc\u7b14\u8005\u5bf9OD\u754c\u9762\u7684\u51e0\u4e2a\u7a97\u53e3\u8fdb\u884c\u4e86\u4e00\u4e0b\u6807\u8bc6\u3002
1. \u83dc\u5355\u7a97\u53e3 :
\u4ece\u5de6\u5f80\u53f3\u4f9d\u6b21\u53bb\u8bf4\u8fd9\u4e9b\u6309\u94ae\u7684\u4f5c\u7528\u4ee5\u53ca\u5feb\u6377\u952e:
(1)\xa0 \xa0\u6253\u5f00\u65b0\u7684\u53ef\u6267\u884c\u6587\u4ef6[\u5feb\u6377\u952eF3]
(2)\xa0 \xa0\u91cd\u65b0\u8f7d\u5165\u7a0b\u5e8f[\u5feb\u6377\u952eCtrl+F2]
(3)\xa0 \xa0\u5173\u95ed\u7a0b\u5e8f [\u5feb\u6377\u952eAlt+F2]
(4)\xa0 \xa0\u8fd0\u884c\u7a0b\u5e8f[\u5feb\u6377\u952eF9]
(5)\xa0 \xa0\u6682\u505c\u6267\u884c\u7a0b\u5e8f [\u5feb\u6377\u952eF12]
(6)\xa0 \xa0\u5355\u6b65\u6b65\u5165[\u5feb\u6377\u952eF7]
(7)\xa0 \xa0\u5355\u6b65\u6b65\u8fc7[\u5feb\u6377\u952eF8]
(8)\xa0 \xa0\u8ddf\u8e2a\u6b65\u5165[\u5feb\u6377\u952eCtrl+F11]
(9)\xa0 \xa0\u8ddf\u8e2a\u6b65\u8fc7[\u5feb\u6377\u952eCtrl+F12]
(10)\xa0\xa0\u6267\u884c\u5230\u8fd4\u56de[\u5feb\u6377\u952eCtrl+F9]
(11)\xa0\xa0\u8f6c\u5230\u53cd\u6c47\u7f16\u7a97\u4e2d\u53e3\u7684\u5730\u5740(\u8f6c\u5230\u8868\u8fbe\u5f0f)[\u5feb\u6377\u952eCtrl+G]
(12)\xa0\xa0\u663e\u793a\u8bb0\u5f55\u7a97\u53e3[\u5feb\u6377\u952eAlt+L]
(13)\xa0\xa0\u663e\u793a\u6a21\u5757\u7a97\u53e3[\u5feb\u6377\u952eAlt+E]
(14)\xa0\xa0\u663e\u793a\u5185\u5b58\u7a97\u53e3[\u5feb\u6377\u952eAlt+M]
(15)\xa0\xa0\u663e\u793a\u7ebf\u7a0b\u7a97\u53e3
(16)\xa0\xa0\u663e\u793a\u7a97\u53e3
(17)\xa0\xa0\u663e\u793a\u53e5\u67c4\u7a97\u53e3
(18)\xa0\xa0\u663e\u793aCPU\u7a97\u53e3[\u5feb\u6377\u952eAlt+C]
(19)\xa0\xa0\u663e\u793a\u8865\u4e01\u7a97\u53e3[\u5feb\u6377\u952eCtrl+P]
(20)\xa0\xa0\u663e\u793a\u8c03\u7528\u5806\u6808\u7a97\u53e3[\u5feb\u6377\u952eAlt+K]
(21)\xa0\xa0\u663e\u793a\u65ad\u70b9\u7a97\u53e3[\u5feb\u6377\u952eAlt+B]
(22)\xa0\xa0\u663e\u793a\u53c2\u8003\u7a97\u53e3[\u5feb\u6377\u952eAlt+R]
(23)\xa0\xa0\u663e\u793aRun \u8ddf\u8e2a\u7a97\u53e3
(24)\xa0\xa0\u663e\u793a\u6e90\u7801\u7a97\u53e3
(25)\xa0\xa0\u8c03\u8bd5\u9009\u9879(\u5feb\u6377\u952eAlt+O)
(26)\xa0\xa0\u754c\u9762\u9009\u9879
(27)\xa0\xa0 \u5e2e\u52a9
2. \u53cd\u6c47\u7f16\u7a97\u53e3:
\u4e3a\u4e86\u6f14\u793a\u65b9\u4fbf\u7b14\u8005\u51b3\u5b9a\u7528C\u8bed\u8a00\u5199\u4e2a\u7b80\u5355\u7684Hello World!\u7a0b\u5e8f
\u4ee3\u7801\u5982\u4e0b :
[C] \u7eaf\u6587\u672c\u67e5\u770b \u590d\u5236\u4ee3\u7801
1
2
3
4
5
6
7
#include<stdio.h>
int main()
{
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 printf ( "Hello World!" );
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 getchar ();
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 return 0;
}
\u5c06\u7f16\u8bd1\u597d\u7684\u6587\u4ef6\u62d6\u5165 OD
\u8fd9\u91cc\u7b14\u8005\u5bf9\u53cd\u6c47\u7f16\u7a97\u53e3\u8fdb\u884c\u4e86\u4e00\u4e0b\u5212\u5206\u548c\u6807\u6ce8:
\u8fd9\u91cc\u9762\u5730\u5740\u5373\u4e3a\u7a0b\u5e8f\u7684\u5185\u5b58\u5730\u5740,hex\u5373\u4e3ahex\u6570\u636e\uff0c\u53cd\u6c47\u7f16\u5c31\u662f\u7a0b\u5e8f\u7684\u6c47\u7f16\u4ee3\u7801\uff0c\u6ce8\u91ca\u5373\u4e3aod\u5206\u6790\u51fa\u6765\u7684\uff0c\u53cc\u51fb\u5373\u53ef\u7f16\u8f91\uff0c\u4fe1\u606f\u7a97\u53e3\u80fd\u5bf9\u64cd\u4f5c\u8fdb\u884c\u66f4\u52a0\u8be6\u7ec6\u7684\u67e5\u770b\u3002

3. \u5bc4\u5b58\u5668\u7a97\u53e3 :
\u8fd9\u91cc\u5c31\u7b80\u5355\u4ecb\u7ecd\u51e0\u4e2a\u901a\u7528\u5bc4\u5b58\u5668
ESP:\u6307\u5411\u5806\u6808\u6808\u9876
EBP:\u5927\u90e8\u5206\u7528\u6765\u5b9a\u4f4d\u5c40\u90e8\u53d8\u91cf\u548c\u53c2\u6570
\u5176\u4f59\u7684\u5c31\u5404\u81ea\u62c6\u5f00\u6765\u7528
\u8fd9\u91cc\u9762\u4e0d\u4f4e\u5bc4\u5b58\u5668\u505a\u66f4\u52a0\u6df1\u5165\u7684\u8bb2\u89e3\uff0c\u6709\u5174\u8da3\u7684\u540c\u5b66\u53ef\u4ee5\u770b\u770b\u738b\u723d\u7684\u300a\u6c47\u7f16\u8bed\u8a00(\u7b2c3\u7248) \u300b\u3002
\u53e6\u5916, \u70b9\u51fb\u6807\u7b7e\u5bc4\u5b58\u5668 (FPU) \u53ef\u4ee5\u5207\u6362\u663e\u793a\u5bc4\u5b58\u5668\u7684\u65b9\u5f0f

4. \u6570\u636e\u7a97\u53e3 :
\u6570\u636e\u7a97\u53e3\u4e3b\u8981\u7684\u5373\u4e3a\u7a0b\u5e8f\u6216\u8005\u5185\u5b58\u7684\u6570\u636e,\u53f3\u952e\u53ef\u4ee5\u5207\u6362\u663e\u793a\u65b9\u5f0f
5. \u5806\u6808\u7a97\u53e3 :
\u4e3b\u8981\u5b58\u653e\u7ebf\u7a0b\u7684\u4e34\u65f6\u6570\u636e,\u53ef\u4ee5\u7528\u4e8e\u52a8\u6001\u8c03\u8bd5.

6. \u547d\u4ee4\u884c\u7a97\u53e3:
\u4e3b\u8981\u5c31\u662f\u6267\u884c\u4e00\u4e9b\u4e0b\u65ad\u547d\u4ee4
\u6bd4\u5982:bp+API\u51fd\u6570\u540d\u79f0
\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014
0x02 \u4e00\u4e9b\u5e38\u7528\u7684\u64cd\u4f5c
\u4e3a\u4e86\u65b9\u4fbf\u6f14\u793a\u4e0b\u9762\u7684\u64cd\u4f5c,\u7b14\u8005\u5199\u4e86\u4e00\u6bb5\u4ee3\u7801\u6765\u68c0\u6d4bexplorer.exe\u8fdb\u7a0b\u7684\u7a0b\u5e8f

\u4ee3\u7801\u5982\u4e0b :
[C] \u7eaf\u6587\u672c\u67e5\u770b \u590d\u5236\u4ee3\u7801
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <windows.h>
#include <tlhelp32.h>\xa0\xa0
#include <stdio.h>
int main()
{
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 char * procressName = "explorer.exe" ;
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 char pName[MAX_PATH];
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 strcpy (pName, procressName);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 CharLowerBuff(pName, MAX_PATH);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 PROCESSENTRY32 currentProcess;
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 currentProcess.dwSize = sizeof (currentProcess);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 if (hProcess == INVALID_HANDLE_VALUE)
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 {
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 printf ( "\u51fd\u6570CreateToolhelp32Snapshot\u8c03\u7528\u5931\u8d25!\" );
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 return FALSE;
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 }
\xa0
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 BOOL bMore = Process32First(hProcess, \xa4tProcess);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 while (bMore)
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 {
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 CharLowerBuff(currentProcess.szExeFile, MAX_PATH);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 if ( strcmp (currentProcess.szExeFile, pName) == 0)
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 {
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 CloseHandle(hProcess);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 printf ( "\u53d1\u73b0explorer.exe" );
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 system ( "pause" );
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 exit (0);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 }
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 bMore = Process32Next(hProcess, \xa4tProcess);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 }
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 printf ( "\u6ca1\u6709\u53d1\u73b0explorer.exe\" );
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 CloseHandle(hProcess);
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 printf ( "Cracke Success!" );
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 getchar ();
\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 return 0;
}
\u7f16\u8bd1\u5b8c\u6210\u540e\u8fd0\u884c
\u6253\u5f00OD
1. OD\u8f7d\u5165\u7a0b\u5e8f\u7684\u4e24\u79cd\u65b9\u6cd5
(1)\xa0 \xa0\u62d6\u62fdexe\u6587\u4ef6\u8f7d\u5165,\u8fd9\u4e2a\u5f88\u7b80\u5355\u76f4\u63a5\u628aexe\u6587\u4ef6\u62d6\u62fd\u5230OD\u7a97\u53e3\u4e2d\u5c31\u884c
(2)\xa0 \xa0\u8fdb\u7a0b\u9644\u52a0,\u524d\u63d0\u662f\u4f60\u9700\u8981\u5148\u8fd0\u884c\u6240\u8981\u9644\u52a0\u7684exe

a. \u9996\u5148\u8fd0\u884c\u9700\u8981\u9644\u52a0\u7684 exe
b.\u70b9\u51fb \u6587\u4ef6->\u9644\u52a0,\u627e\u5230\u9700\u8981\u9644\u52a0\u7684\u8fdb\u7a0b,\u9009\u4e2d\u540e\u70b9\u51fb\u9644\u52a0
2. \u5b57\u7b26\u4e32\u641c\u7d22\u65b9\u6cd5
\u5728\u53cd\u6c47\u7f16\u7a97\u53e3\u4e0a\u70b9\u51fb\u53f3\u952e->\u4e2d\u6587\u641c\u7d22\u5f15\u64ce[\u6839\u636e\u9700\u8981\u4f60\u53ef\u4ee5\u9009\u53d6\u76f8\u5e94\u7684\u7b5b\u9009\u9009\u9879(1.\u641c\u7d22ASCII,2.\u641c\u7d22UNICODE,3.\u667a\u80fd\u641c\u7d22)]
PS: ASCII\xa0\xa0\u53c8\u53ebANSI\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0\xa0\u7b80\u5199\u4e3aA
\xa0 \xa0\xa0 \xa0UNICODE\u53c8\u53ebWideChar\xa0\xa0\u7b80\u5199\u4e3aW
\u7a0b\u5e8fAPI\u91cc\u9762\u7684A/W\u5c31\u662f\u6307\u7684\u8fd9\u4e24\u79cd\u7f16\u7801
\u7528\u521a\u521a\u90a3\u4e2a\u68c0\u6d4bexplorer\u8fdb\u7a0b\u7684exe\u4e3a\u4f8b\u5b50:

ASCII \u641c\u7d22 :
\xa0 \xa0\xa0 \xa0\xa0 \xa0
UNICODE \u641c\u7d22 :
\xa0 \xa0\xa0 \xa0\xa0 \xa0
\u667a\u80fd\u641c\u7d22 :
\xa0 \xa0\xa0 \xa0\xa0 \xa0
\u5728\u8fd9\u91cc\u9762\u7b14\u8005\u63a8\u8350\u5728\u641c\u7d22\u5b57\u7b26\u4e32\u7684\u65f6\u5019\u4f7f\u7528\u667a\u80fd\u641c\u7d22
3. \u4e0b\u65ad\u70b9\u4ee5\u53ca\u5220\u9664\u65ad\u70b9:

(1). \u5feb\u6377\u952e\u4e0b\u65ad\u70b9(F2):\u7528\u9f20\u6807\u9009\u4e2d\u9700\u8981\u4e0b\u6bb5\u7684\u4ee3\u7801\uff0c\u6309\u4e00\u4e0b F2
\xa0 \xa0\xa0 \xa0\xa0 \xa0
\xa0 \xa0(2) \u7528\u9f20\u6807\u9009\u4e2d\u4ee3\u7801\u53f3\u952e -> \u65ad\u70b9 -> \u5207\u6362
\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0
\xa0 \xa0\xa0 \xa0 (3)\u547d\u4ee4\u884c\u4e0b\u65ad\u70b9:

a. \u5148\u627e\u5230\u9700\u8981\u4e0b\u6bb5\u7684\u5185\u5b58\u5730\u5740 :
\xa0 \xa0\xa0\xa0
b. \u5728\u547d\u4ee4\u884c\u7a97\u53e3\u8f93\u5165bp \u5185\u5b58\u5730\u5740
\u672c\u7a0b\u5e8f\u4e2d\u9700\u8981\u4e0b\u6bb5\u7684\u5185\u5b58\u5730\u5740\u4e3a: 00B510EC\u8f93\u5165\u547d\u4ee4: bp 00B510EC,\u56de\u8f66
\xa0 \xa0\xa0 \xa0 (4)\u5220\u9664\u65ad\u70b9

\xa0 \xa0 a. \u67e5\u770b \u2013> \u65ad\u70b9 \u7136\u540e\u5c31\u8fdb\u5165\u5230\u663e\u793a\u65ad\u70b9\u7a97\u53e3(\u5feb\u6377\u952e Alt+B)
b.\u7528\u9f20\u6807\u70b9\u51fb\u9700\u8981\u5220\u9664\u7684\u65ad\u70b9\u53f3\u952e\u5220\u9664\u5373\u53ef

(PS: \u8fd9\u91cc\u9762\u65ad\u70b9\u7684\u4f7f\u7528\u5e76\u4e0d\u5168\u9762\uff0c\u8fd9\u662f\u505a\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u4ecb\u7ecd\u800c\u5df2 )
4.\u4fdd\u5b58\u6587\u4ef6
\u5c31\u4ee5\u8fd9\u4e2a\u68c0\u6d4bExplorer.exe\u7684\u7a0b\u5e8f\u4e3a\u4f8b\u5b50
\u6211\u4eec\u9700\u8981\u5c06\u7a0b\u5e8f\u6539\u4e3a\u76f4\u63a5\u8f93\u51faCracke Success!

\u9996\u5148\u641c\u7d22\u5b57\u7b26\u4e32\u627e\u5230 Cracke Success!
\xa0\xa0 \u53cc\u51fb\u5b57\u7b26\u4e32\u8ddf\u8e2a
\xa0 \xa0\xa0 \xa0
\xa0 \xa0\xa0 \xa0 \u5f80 \u4e0a\u7ffb\u4e00\u7ffb\u5b57\u7b26\u4e32\u4f1a\u53d1\u73b0\u201d\u6ca1\u6709\u53d1\u73b0explorer.exe\\u201d\u8fd9\u6bb5ASCII,\u7528\u9f20\u6807\u9009\u4e2dASCII\u6240\u5728\u7684\u4ee3\u7801,\u5982\u56fe\u6240\u793a
\xa0 \xa0 \xa0\xa0\u8fd9\u91cc\u9762\u7528\u767d\u8272\u5706\u5f62\u6240\u4f20\u51fa\u6765\u7684\u662f\u4e00\u6bb5\u8df3\u8f6c\uff0c\u6211\u4eec\u9700\u8981\u8ddf\u8e2a\u4e00\u4e0b
\xa0 \xa0\xa0 \xa0\uff08\u8fd9\u91cc\u7684\u7ea2\u7ebf\u4ee3\u8868\u7684\u662f\u8df3\u8f6c\u5b9e\u73b0\uff0c\u800c\u767d\u7ebf\u5219\u662f\u4e0d\u5b9e\u73b0\u3002\uff09
\xa0 \xa0\xa0\xa0
\xa0 \xa0\xa0\xa0\u53d1\u73b0\u662f\u4eceje short Checking.00B510EC\u8df3\u8f6c\u8fc7\u6765
\xa0 \xa0\xa0\xa0
\xa0 \xa0\xa0 \xa0\u8fd9\u91cc\u9762\u666e\u53ca\u4e00\u4e0b\u6c47\u7f16\u7684\u6761\u4ef6\u8df3\u8f6c\u6307\u4ee4:
\xa0 \xa0\xa0 \xa0jmp :\u65e0\u6761\u4ef6\u8df3\u8f6c (jump)
\xa0 \xa0\xa0 \xa0je/jz :\u7ed3\u679c\u4e3a0\u8df3\u8f6c (jump zero)
\xa0 \xa0\xa0 \xa0jnz/jne: \u7ed3\u679c\u4e0d\u4e3a0\u8df3\u8f6c (jump not zero)
\xa0 \xa0\xa0 \xa0js:\u7ed3\u679c\u4e3a\u8d1f\u8df3\u8f6c (Jump if sign)
\xa0 \xa0\xa0 \xa0jns:\u7ed3\u679c\u4e3a\u6b63\u8df3\u8f6c(Jump if not sign)
\xa0 \xa0\xa0 \xa0jb:\u5c0f\u4e8e\u5219\u8df3\u8f6c\uff08Jump below\uff09
\xa0 \xa0\xa0\xa0jnb:\u5927\u4e8e\u6216\u7b49\u4e8e\u5219\u8df3\u8f6c(Jump not below)
\xa0 \xa0\xa0\xa0\u56de\u5230\u8fd9\u4e2a\u7a0b\u5e8f\u4e2d,\u7a0b\u5e8f\u7684\u610f\u601d\u5c31\u662f\u8c03\u7528CreateToolhelp32Snapshot\u51fd\u6570\u53bb\u521b\u9020\u4e00\u4e2a\u5f53\u524d\u8fdb\u7a0b\u5feb\u7167,\u5229\u7528ProcessFirst\u548c\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0\xa0ProcessNext\u8fd9\u4e24\u4e2aAPI\u51fd\u6570\u53bb\u904d\u5386\u8fdb\u7a0b\u5feb\u7167\u7684\u8fdb\u7a0b\u5e76\u4e14\u4e0eExplorer.exe\u505acmp,\u5982\u679c\u7ed3\u679c\u4e3a\u771f\u5c31\u4e0d\u8df3\u8f6c,\u8f93\u51fa\u201c
\xa0 \xa0\xa0\xa0\u53d1\u73b0explorer.exe\u201d,\u5982\u679c\u7ed3\u679c\u4e3a\u5047\u5c31\u8df3\u8f6c\u201c\u6ca1\u6709\u53d1\u73b0explorer.exe Cracke Success!\u201d
\xa0 \xa0\xa0\xa0
\xa0 \xa0\xa0 \xa0 \u6240\u4ee5\u8fd9\u5176\u4e2d\u7684\u5173\u952e\u5c31\u5728\u4e8e\u904d\u5386\u67e5\u627e\u90e8\u5206
\xa0 \xa0\xa0\xa0
\xa0 \xa0 \u7528\u9f20\u6807\u9009\u4e2d\u540e\uff0c\u53cc\u51fb\u7f16\u8f91
\xa0 \xa0\xa0\xa0
\xa0 \xa0\xa0\xa0 \u5c06\u6761\u4ef6\u8df3\u8f6c\u7684je\u6539\u4e3a\u65e0\u6761\u4ef6\u8df3\u8f6c\u7684jmp
\xa0 \xa0\xa0\xa0
\xa0 \xa0\xa0\xa0 \u53f3\u952e -> \u590d\u5236\u5230\u53ef\u6267\u884c\u6587\u4ef6 \u2013> \u6240\u6709\u4fee\u6539
\xa0 \xa0\xa0\xa0
\xa0 \xa0\xa0\xa0 \u70b9\u51fb\u5168\u90e8\u590d\u5236
\xa0 \xa0\xa0\xa0
\xa0 \xa0\xa0\xa0 \u53f3\u952e\u540e\uff0c\u627e\u5230\u4fdd\u5b58\u6587\u4ef6
\xa0 \xa0\xa0\xa0
\xa0 \xa0\xa0\xa0\u6211\u4eec\u5c06\u5176\u91cd\u547d\u540d\u4e3aCracker-Checking Explorer.exe
\xa0 \xa0 \u4fdd\u5b58\u5728\u684c\u9762\u4e0a
\xa0 \xa0\xa0\xa0
\xa0 \xa0 \u8fd0\u884c\u4e00\u4e0b
\xa0 \xa0\xa0\xa0
\xa0 \xa0\xa0\xa0\u8fd9\u4e2a\u68c0\u6d4b\u8fdb\u7a0b\u5c31\u88ab\u6211\u4eec\u7ed5\u8fc7\u4e86
\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014
0x03 \u5e38\u7528\u6c47\u7f16\u6307\u4ee4\u626b\u76f2
\xa0\xa01.\u901a\u7528\u6570\u636e\u4f20\u9001\u6307\u4ee4
\xa0\xa0MOV\uff08Move\uff09\u4f20\u9001
\xa0\xa0\u4f8b\u5982 mov a,b \u5c31\u662f\u628ab\u7684\u503c\u4f20\u7ed9a
\xa0\xa0PUSH\uff08Push onto the stack\uff09\u8fdb\u6808
\xa0\xa0POP\uff08Pop from the stack\uff09\u51fa\u6808
\xa0\xa0\u6ce8:push\u548cpop\u7531\u4e8e\u5806\u6808\u5e73\u8861\u539f\u7406
\u6709push\u5c31\u5fc5\u987b\u8981\u6709pop
\xa0\xa0XCHG\uff08Exchange\uff09\u4ea4\u6362
\xa0\xa02.\u6807\u5fd7\u5bc4\u5b58\u5668\u4f20\u9001\u6307\u4ee4
\xa0\xa0PUSHF(push the flags) \u6807\u5fd7\u8fdb\u6808
\xa0\xa0POPF(pop the flags) \u6807\u5fd7\u51fa\u6808
\xa0\xa03.\u6761\u4ef6\u8df3\u8f6c(\u4e00\u822c\u914d\u5408cmp\u4f7f\u7528)
\xa0\xa0JMP(jump) \u65e0\u6761\u4ef6\u8df3\u8f6c
\xa0\xa0JZ/JE(Jump if zero,or equal) \u7ed3\u679c\u4e3a\u96f6(\u6216\u76f8\u7b49)\u5219\u8df3\u8f6c
\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0 \u6ce8\uff1a\u68c0\u6d4bZ\u4f4d
\xa0\xa0JNZ/JNE(Jump if not zero,or not equal) \u7ed3\u679c\u4e0d\u4e3a\u96f6(\u6216\u4e0d\u76f8\u7b49)\u5219\u8df3\u8f6c\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\u6ce8\uff1a\u68c0\u6d4bZ\u4f4d
\xa0\xa0JS(Jump if sign) \u7ed3\u679c\u4e3a\u8d1f\u5219\u8df3\u8f6c\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\u6ce8\uff1a\u68c0\u6d4bS\u4f4d
\xa0\xa0JNS(Jump if not sign) \u7ed3\u679c\u4e3a\u6b63\u5219\u8df3\u8f6c\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\u6ce8\uff1a\u68c0\u6d4bS\u4f4d
\xa0\xa0JB(Jump Below):\u5c0f\u4e8e\u5219\u8df3\u8f6c\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0 \u6ce8\uff1a\u68c0\u6d4bC\u4f4d
\xa0\xa0JNB(Jump Not Below ):\u5927\u4e8e\u6216\u7b49\u4e8e\u5219\u8df3\u8f6c\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0\xa0 \xa0 \u6ce8\uff1a\u68c0\u6d4bC\u4f4d
\xa0\xa0\u90a3\u8fd9\u4e9bC\u4f4d,Z\u4f4d\uff0cS\u4f4d\u5728\u54ea\u91cc\u770b\u5462?

\xa0\xa0\u57280x01\u8ba4\u8bc6OD\u4e2d\u5728\u5bc4\u5b58\u5668\u7a97\u53e3\u4e2d\u8ba4\u8bc6\u4e86\u6807\u5fd7\u5bc4\u5b58\u5668,\u5982\u56fe :\xa0\xa0
\xa0 \xa0
\xa0\xa0 \u8fd9\u91cc\u7528jnz\u53bb\u4e3e\u4f8b,jnz\u7684\u5224\u65ad\u68c0\u67e5Z\u4f4d\uff0c\u5f53Z\u4f4d\u662f0\u7684\u65f6\u5019\u5c31\u4e0d\u8df3\u8f6c\uff0c\u5728Z\u4e3a\u662f1\u7684\u65f6\u5019\u5c31\u8df3\u8f6c
\xa0 \xa0
\xa0\xa04.\u5b50\u7a0b\u5e8f
\xa0\xa0CALL \u8c03\u7528\u6307\u4ee4
\xa0\xa0RET \u8fd4\u56de\u6307\u4ee4
\xa0\xa05.LOOP \u5faa\u73af\u6307\u4ee4
\xa0\xa06.\u7b97\u6570\u6307\u4ee4
\xa0\xa0ADD \u52a0\u6cd5\u6307\u4ee4
\xa0\xa0SUB \u51cf\u6cd5\u6307\u4ee4
\xa0\xa0SUBR \u51cf\u6cd5\u6307\u4ee4
\xa0\xa0MUL \u4e58\u6cd5\u6307\u4ee4
\xa0\xa0DIV\xa0\xa0\u9664\u6cd5\u6307\u4ee4
\xa0\xa0DIVR ;\u9664\u6cd5\u6307\u4ee4
\xa0\xa07.nop \u7a7a\u6307\u4ee4
0x04 \u603b\u7ed3
\xa0\xa0\u672c\u7bc7\u6587\u7ae0\u4ecb\u7ecd\u4e86OD \u7684\u57fa\u7840\u4f7f\u7528,\u4ee5\u53ca\u4e00\u4e9b\u57fa\u7840\u64cd\u4f5c
\xa0\xa0\u4ecb\u7ecd\u4e86\u4e00\u4e9b\u5e38\u7528\u7684\u6c47\u7f16\u6307\u4ee4,\u5982\u679c\u6709\u54ea\u4e9b\u5e38\u7528\u7684\u6c47\u7f16\u6307\u4ee4\u6ca1\u6709\u8865\u5145\u5230\u4f4d\u7684\u4ee5\u53ca\u6587\u7ae0\u4e2d\u51fa\u73b0\u7455\u75b5\u7684\u5730\u65b9\u6b22\u8fce\u5728\u8bc4\u8bba\u533a\u4e2d\u6307\u51fa\uff0c\xa0 \xa0 \u6211\u4f1a\u53ca\u65f6\u5ba1\u6539\u7684

\xa0\xa0\u9644\u4ef6\u4e2d\u6709\u672c\u7bc7\u6587\u7ae0\u7684\u4f8b\u5b50\u4ee5\u53ca\u4e00\u4e2a\u6f14\u793a\u4f8b\u5b50
\u6e38\u5ba2\uff0c\u5982\u679c\u60a8\u8981\u67e5\u770b\u672c\u5e16\u9690\u85cf\u5185\u5bb9\u8bf7 \u56de\u590d