📄 protect.lst
字号:
40000253: 83 c4 10 add $0x10,%esp
40000256: 83 f8 01 cmp $0x1,%eax
40000259: 75 eb jne 40000246 <_main+0x3e>
protect.c:39
continue;
printf("Key pressed was '%c'\n", key);
4000025b: 83 c4 f8 add $0xfffffff8,%esp
4000025e: 31 c0 xor %eax,%eax
40000260: 8a 45 ff mov 0xffffffff(%ebp),%al
40000263: 50 push %eax
40000264: 68 9b 01 00 40 push $0x4000019b
40000269: e8 e2 00 00 00 call 40000350 <_printf>
protect.c:40
switch(key)
4000026e: 83 c4 10 add $0x10,%esp
40000271: 31 c0 xor %eax,%eax
40000273: 8a 45 ff mov 0xffffffff(%ebp),%al
40000276: 83 c0 cf add $0xffffffcf,%eax
40000279: 83 f8 06 cmp $0x6,%eax
4000027c: 0f 87 9e 00 00 00 ja 40000320 <_main+0x118>
40000282: ff 24 86 jmp *(%esi,%eax,4)
40000285: a1 02 00 40 b0 mov 0xb0400002,%eax
4000028a: 02 00 add (%eax),%al
4000028c: 40 inc %eax
4000028d: c0 02 00 rolb $0x0,(%edx)
40000290: 40 inc %eax
40000291: d2 02 rolb %cl,(%edx)
40000293: 00 40 e6 add %al,0xffffffe6(%eax)
40000296: 02 00 add (%eax),%al
40000298: 40 inc %eax
40000299: f0 02 00 lock add (%eax),%al
4000029c: 40 inc %eax
4000029d: f7 02 00 40 a0 00 testl $0xa04000,(%edx)
protect.c:43
{
case '1':
key = *(volatile unsigned char *)0xFFFF0000;
400002a3: 00 ff add %bh,%bh
400002a5: ff 88 45 ff e9 82 decl 0x82e9ff45(%eax)
protect.c:44
break;
400002ab: 00 00 add %al,(%eax)
400002ad: 00 89 f6 c6 05 00 add %cl,0x5c6f6(%ecx)
protect.c:46
case '2':
*(unsigned char *)0xFFFF0000 = 0;
400002b3: 00 ff add %bh,%bh
400002b5: ff 00 incl (%eax)
protect.c:47
break;
400002b7: eb 77 jmp 40000330 <_main+0x128>
400002b9: 8d b4 26 00 00 00 00 lea 0x0(%esi,1),%esi
protect.c:49
case '3':
(void)inportb(0x80);
400002c0: 83 c4 f4 add $0xfffffff4,%esp
400002c3: 68 80 00 00 00 push $0x80
400002c8: e8 e3 00 00 00 call 400003b0 <_inportb>
protect.c:50
break;
400002cd: 83 c4 10 add $0x10,%esp
400002d0: eb 5e jmp 40000330 <_main+0x128>
protect.c:52
case '4':
outportb(0x80, 0);
400002d2: 83 c4 f8 add $0xfffffff8,%esp
400002d5: 6a 00 push $0x0
400002d7: 68 80 00 00 00 push $0x80
400002dc: e8 df 00 00 00 call 400003c0 <_outportb>
protect.c:53
break;
400002e1: 83 c4 10 add $0x10,%esp
400002e4: eb 4a jmp 40000330 <_main+0x128>
protect.c:55
case '5':
disable();
400002e6: e8 e5 00 00 00 call 400003d0 <_disable>
protect.c:56
break;
400002eb: eb 43 jmp 40000330 <_main+0x128>
400002ed: 8d 76 00 lea 0x0(%esi),%esi
protect.c:58
case '6':
recurse();
400002f0: e8 0b fd ff ff call 40000000 <_code>
protect.c:59
break;
400002f5: eb 39 jmp 40000330 <_main+0x128>
protect.c:61
case '7':
printf("%u\n", key / 0);
400002f7: 31 d2 xor %edx,%edx
400002f9: 8a 55 ff mov 0xffffffff(%ebp),%dl
400002fc: b1 00 mov $0x0,%cl
400002fe: 89 d0 mov %edx,%eax
40000300: f6 f1 div %cl,%al
40000302: 83 c4 f8 add $0xfffffff8,%esp
40000305: 88 c2 mov %al,%dl
40000307: 31 c0 xor %eax,%eax
40000309: 88 d0 mov %dl,%al
4000030b: 50 push %eax
4000030c: 68 b1 01 00 40 push $0x400001b1
40000311: e8 3a 00 00 00 call 40000350 <_printf>
protect.c:62
break;
40000316: 83 c4 10 add $0x10,%esp
40000319: eb 15 jmp 40000330 <_main+0x128>
4000031b: 90 nop
4000031c: 8d 74 26 00 lea 0x0(%esi,1),%esi
protect.c:64
default:
printf("Invalid key, try again\n");
40000320: 83 c4 f4 add $0xfffffff4,%esp
40000323: 68 b5 01 00 40 push $0x400001b5
protect.c:65
goto SKIP;
40000328: eb 0e jmp 40000338 <_main+0x130>
4000032a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
protect.c:67
}
printf("Hey, it worked! Better fix the kernel\n");
40000330: 83 c4 f4 add $0xfffffff4,%esp
40000333: 68 e0 01 00 40 push $0x400001e0
40000338: e8 13 00 00 00 call 40000350 <_printf>
4000033d: 83 c4 10 add $0x10,%esp
protect.c:70
SKIP:
}
return 0;
40000340: e9 01 ff ff ff jmp 40000246 <_main+0x3e>
40000345 <.ef>:
protect.c:71
}
40000345: 8d 74 26 00 lea 0x0(%esi,1),%esi
40000349: 8d bc 27 00 00 00 00 lea 0x0(%edi,1),%edi
40000350 <_printf>:
_printf():
printf.c:9
40000350: 55 push %ebp
40000351: 89 e5 mov %esp,%ebp
40000353: 83 ec 08 sub $0x8,%esp
40000356: 8d 45 0c lea 0xc(%ebp),%eax
printf.c:10
40000359: 83 c4 f8 add $0xfffffff8,%esp
4000035c: 50 push %eax
4000035d: 8b 45 08 mov 0x8(%ebp),%eax
40000360: 50 push %eax
40000361: e8 9a 00 00 00 call 40000400 <_vprintf>
printf.c:12
40000366: 89 ec mov %ebp,%esp
40000368: 5d pop %ebp
40000369: c3 ret
4000036a <.ef>:
printf.c:13
4000036a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
40000370 <_ioctl>:
_ioctl():
ioctl.c:5
40000370: 55 push %ebp
40000371: 89 e5 mov %esp,%ebp
40000373: 53 push %ebx
ioctl.c:8
40000374: b8 04 00 00 00 mov $0x4,%eax
ioctl.c:5
40000379: 8b 55 08 mov 0x8(%ebp),%edx
4000037c: 8b 4d 10 mov 0x10(%ebp),%ecx
4000037f: 8a 5d 0c mov 0xc(%ebp),%bl
ioctl.c:8
40000382: cd 30 int $0x30
ioctl.c:11
40000384: 5b pop %ebx
40000385: 89 ec mov %ebp,%esp
40000387: 5d pop %ebp
40000388: c3 ret
40000389 <.ef>:
ioctl.c:12
40000389: 8d b4 26 00 00 00 00 lea 0x0(%esi,1),%esi
40000390 <_read>:
_read():
read.c:5
40000390: 55 push %ebp
40000391: 89 e5 mov %esp,%ebp
40000393: 53 push %ebx
read.c:8
40000394: b8 03 00 00 00 mov $0x3,%eax
read.c:5
40000399: 8b 55 08 mov 0x8(%ebp),%edx
4000039c: 8b 5d 0c mov 0xc(%ebp),%ebx
4000039f: 8b 4d 10 mov 0x10(%ebp),%ecx
read.c:8
400003a2: cd 30 int $0x30
read.c:11
400003a4: 5b pop %ebx
400003a5: 89 ec mov %ebp,%esp
400003a7: 5d pop %ebp
400003a8: c3 ret
400003a9 <.ef>:
read.c:12
400003a9: 8d b4 26 00 00 00 00 lea 0x0(%esi,1),%esi
400003b0 <_inportb>:
_inportb():
inportb.c:2
400003b0: 55 push %ebp
400003b1: 89 e5 mov %esp,%ebp
400003b3: 8b 55 08 mov 0x8(%ebp),%edx
inportb.c:5
400003b6: ec in (%dx),%al
inportb.c:8
400003b7: 25 ff 00 00 00 and $0xff,%eax
400003bc: 89 ec mov %ebp,%esp
400003be: 5d pop %ebp
400003bf: c3 ret
400003c0 <_outportb>:
_outportb():
outportb.c:2
400003c0: 55 push %ebp
400003c1: 89 e5 mov %esp,%ebp
400003c3: 8b 55 08 mov 0x8(%ebp),%edx
400003c6: 8a 45 0c mov 0xc(%ebp),%al
outportb.c:3
400003c9: ee out %al,(%dx)
400003ca: 89 ec mov %ebp,%esp
400003cc: 5d pop %ebp
400003cd: c3 ret
400003ce <.ef>:
400003ce: 89 f6 mov %esi,%esi
400003d0 <_disable>:
_disable():
400003d0: 55 push %ebp
400003d1: 89 e5 mov %esp,%ebp
400003d3: fa cli
400003d4: 89 ec mov %ebp,%esp
400003d6: 5d pop %ebp
400003d7: c3 ret
400003d8 <.ef>:
400003d8: 90 nop
400003d9: 8d b4 26 00 00 00 00 lea 0x0(%esi,1),%esi
400003e0 <_vprintf_help>:
_vprintf_help():
vprintf.c:8
400003e0: 55 push %ebp
400003e1: 89 e5 mov %esp,%ebp
400003e3: 83 ec 08 sub $0x8,%esp
400003e6: 83 c4 f8 add $0xfffffff8,%esp
400003e9: 68 18 10 00 40 push $0x40001018
400003ee: 0f be 45 08 movsbl 0x8(%ebp),%eax
400003f2: 50 push %eax
400003f3: e8 28 00 00 00 call 40000420 <_fputc>
vprintf.c:9
400003f8: 31 c0 xor %eax,%eax
400003fa: 89 ec mov %ebp,%esp
400003fc: 5d pop %ebp
400003fd: c3 ret
400003fe <.ef>:
400003fe: 89 f6 mov %esi,%esi
40000400 <_vprintf>:
_vprintf():
vprintf.c:14
40000400: 55 push %ebp
40000401: 89 e5 mov %esp,%ebp
40000403: 83 ec 08 sub $0x8,%esp
40000406: 8b 55 08 mov 0x8(%ebp),%edx
40000409: 8b 45 0c mov 0xc(%ebp),%eax
vprintf.c:15
4000040c: 6a 00 push $0x0
4000040e: 68 e0 03 00 40 push $0x400003e0
40000413: 50 push %eax
40000414: 52 push %edx
40000415: e8 a6 00 00 00 call 400004c0 <_do_printf>
4000041a: 89 ec mov %ebp,%esp
4000041c: 5d pop %ebp
4000041d: c3 ret
4000041e <.ef>:
4000041e: 89 f6 mov %esi,%esi
40000420 <_fputc>:
_fputc():
fputc.c:6
40000420: 55 push %ebp
40000421: 89 e5 mov %esp,%ebp
40000423: 83 ec 0c sub $0xc,%esp
40000426: 57 push %edi
40000427: 56 push %esi
40000428: 53 push %ebx
40000429: 8b 75 08 mov 0x8(%ebp),%esi
4000042c: 8b 5d 0c mov 0xc(%ebp),%ebx
fputc.c:10
4000042f: 89 f7 mov %esi,%edi
fputc.c:11
40000431: 83 7b 10 00 cmpl $0x0,0x10(%ebx)
40000435: 74 06 je 4000043d <_fputc+0x1d>
40000437: 83 7b 08 00 cmpl $0x0,0x8(%ebx)
4000043b: 75 23 jne 40000460 <_fputc+0x40>
fputc.c:13
4000043d: 89 f8 mov %edi,%eax
4000043f: 88 45 ff mov %al,0xffffffff(%ebp)
fputc.c:14
40000442: 83 c4 fc add $0xfffffffc,%esp
40000445: 6a 01 push $0x1
40000447: 8d 45 ff lea 0xffffffff(%ebp),%eax
4000044a: 50 push %eax
4000044b: 8b 43 14 mov 0x14(%ebx),%eax
4000044e: 50 push %eax
4000044f: e8 7c 04 00 00 call 400008d0 <_write>
40000454: 83 f8 01 cmp $0x1,%eax
40000457: 74 51 je 400004aa <_fputc+0x8a>
fputc.c:16
40000459: eb 4a jmp 400004a5 <_fputc+0x85>
4000045b: 90 nop
4000045c: 8d 74 26 00 lea 0x0(%esi,1),%esi
fputc.c:19
40000460: 83 7b 0c 00 cmpl $0x0,0xc(%ebx)
40000464: 75 1a jne 40000480 <_fputc+0x60>
fputc.c:21
40000466: 83 c4 f4 add $0xfffffff4,%esp
40000469: 53 push %ebx
4000046a: e8 81 04 00 00 call 400008f0 <_fflush>
4000046f: 83 c4 10 add $0x10,%esp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -