⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 protect.lst

📁 一个类linux的dos下开发的操作系统.
💻 LST
📖 第 1 页 / 共 4 页
字号:

protect.x:     file format coff-go32

Disassembly of section .text:

40000000 <_code>:
_recurse():
protect.c:8
/*****************************************************************************
*****************************************************************************/
static void recurse(void)
{
	recurse();
40000000:	55                   	push   %ebp
40000001:	89 e5                	mov    %esp,%ebp
40000003:	83 ec 08             	sub    $0x8,%esp
40000006:	e8 f5 ff ff ff       	call   40000000 <_code>
4000000b:	89 ec                	mov    %ebp,%esp
4000000d:	5d                   	pop    %ebp
4000000e:	c3                   	ret    

4000000f <.ef>:
4000000f:	90                   	nop    
40000010:	90                   	nop    
40000011:	90                   	nop    
40000012:	90                   	nop    
40000013:	90                   	nop    
40000014:	90                   	nop    
40000015:	90                   	nop    
40000016:	90                   	nop    
40000017:	90                   	nop    
40000018:	90                   	nop    
40000019:	90                   	nop    
4000001a:	90                   	nop    
4000001b:	90                   	nop    
4000001c:	90                   	nop    
4000001d:	90                   	nop    
4000001e:	90                   	nop    
4000001f:	90                   	nop    
40000020:	0a 0a                	or     (%edx),%cl
40000022:	57                   	push   %edi
40000023:	68 65 72 65 20       	push   $0x20657265
40000028:	64 6f                	outsl  %fs:(%esi),(%dx)
4000002a:	20 79 6f             	and    %bh,0x6f(%ecx)
4000002d:	75 20                	jne    4000004f <.ef+0x40>
4000002f:	77 61                	ja     40000092 <.ef+0x83>
40000031:	6e                   	outsb  %ds:(%esi),(%dx)
40000032:	74 20                	je     40000054 <.ef+0x45>
40000034:	69 74 20 74 6f 20 62 	imul   $0x6c62206f,0x74(%eax,1),%esi
4000003b:	6c 
4000003c:	6f                   	outsl  %ds:(%esi),(%dx)
4000003d:	77 20                	ja     4000005f <.ef+0x50>
4000003f:	74 6f                	je     400000b0 <.ef+0xa1>
40000041:	64                   	fs
40000042:	61                   	popa   
40000043:	79 3f                	jns    40000084 <.ef+0x75>
40000045:	20 3a                	and    %bh,(%edx)
40000047:	29 0a                	sub    %ecx,(%edx)
40000049:	31 2e                	xor    %ebp,(%esi)
4000004b:	20 43 68             	and    %al,0x68(%ebx)
4000004e:	6f                   	outsl  %ds:(%esi),(%dx)
4000004f:	73 65                	jae    400000b6 <.ef+0xa7>
40000051:	20 61 6e             	and    %ah,0x6e(%ecx)
40000054:	20 69 6c             	and    %ch,0x6c(%ecx)
40000057:	6c                   	insb   (%dx),%es:(%edi)
40000058:	65                   	gs
40000059:	67 61                	addr16 popa 
4000005b:	6c                   	insb   (%dx),%es:(%edi)
4000005c:	20 6f 70             	and    %ch,0x70(%edi)
4000005f:	65                   	gs
40000060:	72 61                	jb     400000c3 <.ef+0xb4>
40000062:	74 69                	je     400000cd <.ef+0xbe>
40000064:	6f                   	outsl  %ds:(%esi),(%dx)
40000065:	6e                   	outsb  %ds:(%esi),(%dx)
40000066:	20 66 72             	and    %ah,0x72(%esi)
40000069:	6f                   	outsl  %ds:(%esi),(%dx)
4000006a:	6d                   	insl   (%dx),%es:(%edi)
4000006b:	20 74 68 65          	and    %dh,0x65(%eax,%ebp,2)
4000006f:	20 6c 69 73          	and    %ch,0x73(%ecx,%ebp,2)
40000073:	74 20                	je     40000095 <.ef+0x86>
40000075:	62 65 6c             	bound  %esp,0x6c(%ebp)
40000078:	6f                   	outsl  %ds:(%esi),(%dx)
40000079:	77 0a                	ja     40000085 <.ef+0x76>
4000007b:	32 2e                	xor    (%esi),%ch
4000007d:	20 50 72             	and    %dl,0x72(%eax)
40000080:	65                   	gs
40000081:	73 73                	jae    400000f6 <.ef+0xe7>
40000083:	20 74 68 65          	and    %dh,0x65(%eax,%ebp,2)
40000087:	20 63 6f             	and    %ah,0x6f(%ebx)
4000008a:	72 72                	jb     400000fe <.ef+0xef>
4000008c:	65                   	gs
4000008d:	73 70                	jae    400000ff <.ef+0xf0>
4000008f:	6f                   	outsl  %ds:(%esi),(%dx)
40000090:	6e                   	outsb  %ds:(%esi),(%dx)
40000091:	64 69 6e 67 20 6b 65 	imul   $0x79656b20,%fs:0x67(%esi),%ebp
40000098:	79 
40000099:	0a 33                	or     (%ebx),%dh
4000009b:	2e 20 53 65          	and    %dl,%cs:0x65(%ebx)
4000009f:	65 20 69 66          	and    %ch,%gs:0x66(%ecx)
400000a3:	20 61 70             	and    %ah,0x70(%ecx)
400000a6:	70 20                	jo     400000c8 <.ef+0xb9>
400000a8:	63 72 61             	arpl   %si,0x61(%edx)
400000ab:	73 68                	jae    40000115 <.ef+0x106>
400000ad:	65                   	gs
400000ae:	73 20                	jae    400000d0 <.ef+0xc1>
400000b0:	61                   	popa   
400000b1:	6e                   	outsb  %ds:(%esi),(%dx)
400000b2:	64 20 62 75          	and    %ah,%fs:0x75(%edx)
400000b6:	72 6e                	jb     40000126 <.ef+0x117>
400000b8:	73 0a                	jae    400000c4 <.ef+0xb5>
400000ba:	0a 00                	or     (%eax),%al
400000bc:	8d 74 26 00          	lea    0x0(%esi,1),%esi
400000c0:	5b                   	pop    %ebx
400000c1:	31 5d 20             	xor    %ebx,0x20(%ebp)
400000c4:	52                   	push   %edx
400000c5:	65                   	gs
400000c6:	61                   	popa   
400000c7:	64 20 6d 65          	and    %ch,%fs:0x65(%ebp)
400000cb:	6d                   	insl   (%dx),%es:(%edi)
400000cc:	6f                   	outsl  %ds:(%esi),(%dx)
400000cd:	72 79                	jb     40000148 <.ef+0x139>
400000cf:	20 6c 6f 63          	and    %ch,0x63(%edi,%ebp,2)
400000d3:	61                   	popa   
400000d4:	74 69                	je     4000013f <.ef+0x130>
400000d6:	6f                   	outsl  %ds:(%esi),(%dx)
400000d7:	6e                   	outsb  %ds:(%esi),(%dx)
400000d8:	20 30                	and    %dh,(%eax)
400000da:	78 46                	js     40000122 <.ef+0x113>
400000dc:	46                   	inc    %esi
400000dd:	46                   	inc    %esi
400000de:	46                   	inc    %esi
400000df:	30 30                	xor    %dh,(%eax)
400000e1:	30 30                	xor    %dh,(%eax)
400000e3:	0a 5b 32             	or     0x32(%ebx),%bl
400000e6:	5d                   	pop    %ebp
400000e7:	20 57 72             	and    %dl,0x72(%edi)
400000ea:	69 74 65 20 6d 65 6d 	imul   $0x6f6d656d,0x20(%ebp,2),%esi
400000f1:	6f 
400000f2:	72 79                	jb     4000016d <.ef+0x15e>
400000f4:	20 6c 6f 63          	and    %ch,0x63(%edi,%ebp,2)
400000f8:	61                   	popa   
400000f9:	74 69                	je     40000164 <.ef+0x155>
400000fb:	6f                   	outsl  %ds:(%esi),(%dx)
400000fc:	6e                   	outsb  %ds:(%esi),(%dx)
400000fd:	20 30                	and    %dh,(%eax)
400000ff:	78 46                	js     40000147 <.ef+0x138>
40000101:	46                   	inc    %esi
40000102:	46                   	inc    %esi
40000103:	46                   	inc    %esi
40000104:	30 30                	xor    %dh,(%eax)
40000106:	30 30                	xor    %dh,(%eax)
40000108:	0a 5b 33             	or     0x33(%ebx),%bl
4000010b:	5d                   	pop    %ebp
4000010c:	20 52 65             	and    %dl,0x65(%edx)
4000010f:	61                   	popa   
40000110:	64 20 66 72          	and    %ah,%fs:0x72(%esi)
40000114:	6f                   	outsl  %ds:(%esi),(%dx)
40000115:	6d                   	insl   (%dx),%es:(%edi)
40000116:	20 49 2f             	and    %cl,0x2f(%ecx)
40000119:	4f                   	dec    %edi
4000011a:	20 70 6f             	and    %dh,0x6f(%eax)
4000011d:	72 74                	jb     40000193 <.ef+0x184>
4000011f:	20 30                	and    %dh,(%eax)
40000121:	78 38                	js     4000015b <.ef+0x14c>
40000123:	30 0a                	xor    %cl,(%edx)
40000125:	5b                   	pop    %ebx
40000126:	34 5d                	xor    $0x5d,%al
40000128:	20 57 72             	and    %dl,0x72(%edi)
4000012b:	69 74 65 20 74 6f 20 	imul   $0x49206f74,0x20(%ebp,2),%esi
40000132:	49 
40000133:	2f                   	das    
40000134:	4f                   	dec    %edi
40000135:	20 70 6f             	and    %dh,0x6f(%eax)
40000138:	72 74                	jb     400001ae <.ef+0x19f>
4000013a:	20 30                	and    %dh,(%eax)
4000013c:	78 38                	js     40000176 <.ef+0x167>
4000013e:	30 0a                	xor    %cl,(%edx)
40000140:	5b                   	pop    %ebx
40000141:	35 5d 20 64 69       	xor    $0x6964205d,%eax
40000146:	73 61                	jae    400001a9 <.ef+0x19a>
40000148:	62 6c 65 28          	bound  %ebp,0x28(%ebp,2)
4000014c:	29 20                	sub    %esp,(%eax)
4000014e:	28 43 4c             	sub    %al,0x4c(%ebx)
40000151:	49                   	dec    %ecx
40000152:	29 0a                	sub    %ecx,(%edx)
40000154:	5b                   	pop    %ebx
40000155:	36                   	ss
40000156:	5d                   	pop    %ebp
40000157:	20 49 6e             	and    %cl,0x6e(%ecx)
4000015a:	66 69 6e 69 74 65    	imul   $0x6574,0x69(%esi),%bp
40000160:	20 72 65             	and    %dh,0x65(%edx)
40000163:	63 75 72             	arpl   %si,0x72(%ebp)
40000166:	73 69                	jae    400001d1 <.ef+0x1c2>
40000168:	76 65                	jbe    400001cf <.ef+0x1c0>
4000016a:	20 63 61             	and    %ah,0x61(%ebx)
4000016d:	6c                   	insb   (%dx),%es:(%edi)
4000016e:	6c                   	insb   (%dx),%es:(%edi)
4000016f:	20 63 61             	and    %ah,0x61(%ebx)
40000172:	75 73                	jne    400001e7 <.ef+0x1d8>
40000174:	69 6e 67 20 73 74 61 	imul   $0x61747320,0x67(%esi),%ebp
4000017b:	63 6b 20             	arpl   %bp,0x20(%ebx)
4000017e:	6f                   	outsl  %ds:(%esi),(%dx)
4000017f:	76 65                	jbe    400001e6 <.ef+0x1d7>
40000181:	72 66                	jb     400001e9 <.ef+0x1da>
40000183:	6c                   	insb   (%dx),%es:(%edi)
40000184:	6f                   	outsl  %ds:(%esi),(%dx)
40000185:	77 0a                	ja     40000191 <.ef+0x182>
40000187:	5b                   	pop    %ebx
40000188:	37                   	aaa    
40000189:	5d                   	pop    %ebp
4000018a:	20 44 69 76          	and    %al,0x76(%ecx,%ebp,2)
4000018e:	69 64 65 20 62 79 20 	imul   $0x7a207962,0x20(%ebp,2),%esp
40000195:	7a 
40000196:	65                   	gs
40000197:	72 6f                	jb     40000208 <_main>
40000199:	0a 00                	or     (%eax),%al
4000019b:	4b                   	dec    %ebx
4000019c:	65                   	gs
4000019d:	79 20                	jns    400001bf <.ef+0x1b0>
4000019f:	70 72                	jo     40000213 <_main+0xb>
400001a1:	65                   	gs
400001a2:	73 73                	jae    40000217 <_main+0xf>
400001a4:	65 64 20 77 61       	and    %dh,%fs:%gs:0x61(%edi)
400001a9:	73 20                	jae    400001cb <.ef+0x1bc>
400001ab:	27                   	daa    
400001ac:	25 63 27 0a 00       	and    $0xa2763,%eax
400001b1:	25 75 0a 00 49       	and    $0x49000a75,%eax
400001b6:	6e                   	outsb  %ds:(%esi),(%dx)
400001b7:	76 61                	jbe    4000021a <_main+0x12>
400001b9:	6c                   	insb   (%dx),%es:(%edi)
400001ba:	69 64 20 6b 65 79 2c 	imul   $0x202c7965,0x6b(%eax,1),%esp
400001c1:	20 
400001c2:	74 72                	je     40000236 <_main+0x2e>
400001c4:	79 20                	jns    400001e6 <.ef+0x1d7>
400001c6:	61                   	popa   
400001c7:	67 61                	addr16 popa 
400001c9:	69 6e 0a 00 90 90 90 	imul   $0x90909000,0xa(%esi),%ebp
400001d0:	90                   	nop    
400001d1:	90                   	nop    
400001d2:	90                   	nop    
400001d3:	90                   	nop    
400001d4:	90                   	nop    
400001d5:	90                   	nop    
400001d6:	90                   	nop    
400001d7:	90                   	nop    
400001d8:	90                   	nop    
400001d9:	90                   	nop    
400001da:	90                   	nop    
400001db:	90                   	nop    
400001dc:	90                   	nop    
400001dd:	90                   	nop    
400001de:	90                   	nop    
400001df:	90                   	nop    
400001e0:	48                   	dec    %eax
400001e1:	65                   	gs
400001e2:	79 2c                	jns    40000210 <_main+0x8>
400001e4:	20 69 74             	and    %ch,0x74(%ecx)
400001e7:	20 77 6f             	and    %dh,0x6f(%edi)
400001ea:	72 6b                	jb     40000257 <_main+0x4f>
400001ec:	65 64 21 20          	and    %esp,%fs:%gs:(%eax)
400001f0:	42                   	inc    %edx
400001f1:	65                   	gs
400001f2:	74 74                	je     40000268 <_main+0x60>
400001f4:	65                   	gs
400001f5:	72 20                	jb     40000217 <_main+0xf>
400001f7:	66 69 78 20 74 68    	imul   $0x6874,0x20(%eax),%di
400001fd:	65 20 6b 65          	and    %ch,%gs:0x65(%ebx)
40000201:	72 6e                	jb     40000271 <_main+0x69>
40000203:	65                   	gs
40000204:	6c                   	insb   (%dx),%es:(%edi)
40000205:	0a 00                	or     (%eax),%al
40000207:	90                   	nop    

40000208 <_main>:
_main():
protect.c:22
}
/*****************************************************************************
for MinGW32
*****************************************************************************/
#ifdef __WIN32__
int __main(void) { return 0; }
#endif
/*****************************************************************************
*****************************************************************************/
int main(void)
{
	unsigned char key;

	printf("\n\nWhere do you want it to blow today? :)\n"
40000208:	55                   	push   %ebp
40000209:	89 e5                	mov    %esp,%ebp
4000020b:	83 ec 10             	sub    $0x10,%esp
4000020e:	56                   	push   %esi
4000020f:	53                   	push   %ebx
40000210:	83 c4 f4             	add    $0xfffffff4,%esp
40000213:	68 20 00 00 40       	push   $0x40000020
40000218:	e8 33 01 00 00       	call   40000350 <_printf>
protect.c:26
		"1. Chose an illegal operation from the list below\n"
		"2. Press the corresponding key\n"
		"3. See if app crashes and burns\n\n");
	printf("[1] Read memory location 0xFFFF0000\n"
4000021d:	83 c4 f4             	add    $0xfffffff4,%esp
40000220:	68 c0 00 00 40       	push   $0x400000c0
40000225:	e8 26 01 00 00       	call   40000350 <_printf>
protect.c:34
		"[2] Write memory location 0xFFFF0000\n"
		"[3] Read from I/O port 0x80\n"
		"[4] Write to I/O port 0x80\n"
		"[5] disable() (CLI)\n"
		"[6] Infinite recursive call causing stack overflow\n"
		"[7] Divide by zero\n");
/* turn off keyboard input buffering */
	(void)ioctl(0, 0, 1);
4000022a:	83 c4 20             	add    $0x20,%esp
4000022d:	83 c4 fc             	add    $0xfffffffc,%esp
40000230:	6a 01                	push   $0x1
40000232:	6a 00                	push   $0x0
40000234:	6a 00                	push   $0x0
40000236:	e8 35 01 00 00       	call   40000370 <_ioctl>
protect.c:35
	while(1)
4000023b:	83 c4 10             	add    $0x10,%esp
4000023e:	8d 5d ff             	lea    0xffffffff(%ebp),%ebx
40000241:	be 85 02 00 40       	mov    $0x40000285,%esi
protect.c:37
	{
		if(read(0, &key, 1) != 1)
40000246:	83 c4 fc             	add    $0xfffffffc,%esp
40000249:	6a 01                	push   $0x1
4000024b:	53                   	push   %ebx
4000024c:	6a 00                	push   $0x0
4000024e:	e8 3d 01 00 00       	call   40000390 <_read>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -