1 2 3 4 5 6 7 8 9 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| 0x8048464 sub esp, 0x54 0x8048467 call 0x080485f1
0x80485f1 pop eax 0x80485f4 ret
0x804846c lea eax,[eax+0x1b94] 0x8048471 0x8048477 sub ebp, 0xC 0x804847a xor eax,eax 0x804847c mov [ebp-0x32],0x656d3174 0x8048483 mov [ebp-0x2E],0x7530795f 0x804848a mov [ebp-0x2A],0x6a6e655f 0x8048491 mov [ebp-0x26],0x775f7930 0x8048498 mov [ebp-0x22],0x31743561 0x804849f mov [ebp-0x1E],0x775f676e 0x80484a6 mov [ebp-0x1A],0x6e5f3561 0x80484ad mov [ebp-0x16],0x775f746f 0x80484b4 mov [ebp-0x12],0x65743561 0x80484bb mov [ebp-0x0E],0x0064 0x80484c1 mov [ebp-0x54],0x00000003 0x80484c8 mov [ebp-0x4C],0x41 0x80484cc mov [ebp-0x4B],0x42 0x80484d0 mov [ebp-0x4A],0x43 0x80484d4 mov [ebp-0x49],0x44 0x80484d8 mov [ebp-0x48],0x45 0x80484dc mov [ebp-0x47],0x46 0x80484e0 mov [ebp-0x46],0x47 0x80484e4 mov [ebp-0x45],0x48 0x80484e8 mov [ebp-0x44],0x49 0x80484ec mov [ebp-0x43],0x4a 0x80484f0 mov [ebp-0x42],0x4b 0x80484f4 mov [ebp-0x41],0x4c 0x80484f8 mov [ebp-0x40],0x4d 0x80484fc mov [ebp-0x3F],0x4e 0x8048500 mov [ebp-0x3E],0x4f 0x8048504 mov [ebp-0x3D],0x50 0x8048508 mov [ebp-0x3C],0x51 0x804850C mov [ebp-0x3B],0x52 0x8048510 mov [ebp-0x3A],0x53 0x8048514 mov [ebp-0x39],0x54 0x8048518 mov [ebp-0x38],0x55 0x804851C mov [ebp-0x37],0x56 0x8048520 mov [ebp-0x36],0x57 0x8048524 mov [ebp-0x35],0x58 0x8048528 mov [ebp-0x34],0x59 0x804852C mov [ebp-0x33],0x5a 0x8048530 mov [ebp-0x58],0x00000000 0x8048537 jmp 0x080485c8 0x804853c lea eax,[ebp-0x32] 0x804853f mov ebx,[ebp-0x58] 0x8048542 add eax,ebx 0x8048544 mov al,[eax] //取一位 0x8048547 mov edx,al 0x804854a mov eax,[ebp-0x54] 0x804854d add eax,edx //加3 0x804854f cmp eax,0x0000005a //与'Z'相比 0x8048552 jna 0x8048574 0x8048554 lea eax,[ebp-0x32] //若小于'Z' 0x8048557 mov ebx,[ebp-0x58] 0x804855a add eax,ebx 0x804855c mov al,[eax] //取这位 0x804855f mov eax,al 0x8048561 mov ebx,[ebp-0x54] 0x8048564 add eax,ebx //加上三 0x8048566 mov ecx,eax 0x8048568 lea eax,[ebp-0x32] 0x804856b lea edx,[ebp-0x58] 0x804856e add eax,edx 0x8048570 mov [eax],cl //写回 0x8048572 jmp 0x080485c4 0x8048574 lea eax,[ebp-0x32] //若大于'Z' 0x8048577 mov ebx,[ebp-0x58] 0x804857a add eax,ebx 0x804857c mov al,[eax] //取一位 0x804857f mov eax,al 0x8048582 mov ebx,[ebp-0x54] 0x8048585 add eax,ebx //加三 0x8048587 sub eax,0x5A //减'Z' 0x804858a mov ecx,eax /// 0x804858f mov ebx,eax /// 0x8048591 mul eax,0x4ec4ec4f /// 0x8048593 sar eax,0x03 /// 0x8048596 nop /// 0x8048598 sar ebx,0x1f /// 0x804859b sub eax,ebx ///这一段像是做取余 0x804859d nop /// 0x804859f mov [ebp-0x50],eax ///因为后面的数组是26位字母 0x80485a2 mov eax,[ebp-0x50] ///盲猜取余26 0x80485a5 mul eax,0x1a /// 0x80485a8 sub ecx,eax /// 0x80485aa nop /// 0x80485ac mov [ebp-0x50],ecx /// 0x80485af mov ecx,[ebp-0x50] /// 0x80485b2 sub ecx,0x00000001 //取余结果减1 0x80485b5 mov al,[ebp+ecx-0x4C] //从数组中取一个char 0x80485ba lea ecx,[ebp-0x32] 0x80485bd mov edx,[ebp-0x58] 0x80485c0 add edx,ecx 0x80485c2 mov [edx],al //写回 0x80485c4 add [ebp-0x58],0x00000001
0x80485c8 cmp [ebp-0x58],0x00000024 0x80485cc jna 0x804853c
0x80485d2
|