英文版下载地址 hxxp://download.csdn.net/source/160118
中文版(无下载)介绍:http://www.china-pub.com/computers/common/info.asp?id=18801
这本书对于整天看汇编代码的人的用处可以用下面的一个例子来说明。
以下代码摘自UltraEdit v13.10。这段计算代码需要求逆,其含义可以在该书的第10章的最后几节找到。UltraEdit所采用的编译器正好是遵循该书中的思路来生成相关的汇编代码的。
00453946 MOVZX EAX,BYTE PTR DS:[EDI+1A]
0045394A MOV BYTE PTR SS:[ESP+10],AL
0045394E MOV BL,BYTE PTR DS:[EDI+18]
00453951 MOV EAX,CCCCCCCD
00453956 MUL DWORD PTR DS:[96DED0]
0045395C MOV EAX,EDX
0045395E SHR EAX,3
00453961 MOV CL,0A
00453963 IMUL CL
00453965 MOV CL,AL
00453967 SUB CL,BYTE PTR DS:[96DED0]
0045396D MOV BYTE PTR SS:[ESP+13],BL
00453971 ADD CL,BL
00453973 MOV EBX,DWORD PTR DS:[96DED8]
00453979 MOV EAX,CCCCCCCD
0045397E MUL EBX
00453980 MOV EAX,EDX
00453982 SHR EAX,3
00453985 MOV DL,0A
00453987 IMUL DL
00453989 SUB CL,41
0045398C SHL CL,4
0045398F ADD CL,AL
00453991 MOVZX EAX,BYTE PTR DS:[EDI+1E]
00453995 MOV BYTE PTR SS:[ESP+11],AL
00453999 MOV EAX,CCCCCCCD
0045399E MUL DWORD PTR DS:[96DEDC]
004539A4 MOV EAX,EDX
004539A6 SHR EAX,3
004539A9 MOV DL,0A
004539AB IMUL DL
004539AD SUB AL,BYTE PTR DS:[96DEDC]
004539B3 SUB CL,BL
004539B5 MOV BL,BYTE PTR DS:[EDI+1C]
004539B8 ADD AL,BL
004539BA SUB AL,41
004539BC SHL AL,4
004539BF MOV BYTE PTR SS:[ESP+E],AL
004539C3 MOV EAX,CCCCCCCD
004539C8 MUL DWORD PTR DS:[96DEE0]
004539CE ADD CL,BYTE PTR SS:[ESP+10]
004539D2 MOV EAX,EDX
004539D4 SHR EAX,3
004539D7 MOV DL,0A
004539D9 IMUL DL
004539DB MOV DL,BYTE PTR SS:[ESP+E]
004539DF ADD DL,AL
004539E1 SUB DL,BYTE PTR DS:[96DEE0]
004539E7 SUB CL,41
004539EA ADD DL,BYTE PTR SS:[ESP+11]
004539EE MOV BYTE PTR SS:[ESP+12],BL
004539F2 MOV EBX,DWORD PTR DS:[96DEE4]
004539F8 SUB DL,41
004539FB MOVZX AX,DL
004539FF MOV AH,CL
00453A01 MOV CL,BYTE PTR DS:[EDI+1F]
00453A04 MOVZX ESI,AX
00453A07 MOV EAX,38E38E39
00453A0C MUL EBX
00453A0E MOV EAX,EDX
00453A10 SHR EAX,1
00453A12 MOV DL,9
00453A14 IMUL DL
00453A16 SUB AL,BL
00453A18 ADD AL,CL
00453A1A SUB AL,30
00453A1C CMP AL,1
00453A1E JNZ SHORT uedit32.00453A4C
00453A20 MOV EBX,DWORD PTR DS:[96DEE8]
00453A26 MOV EAX,24924925
00453A2B MUL EBX
00453A2D MOV EAX,EBX
00453A2F SUB EAX,EDX
00453A31 SHR EAX,1
00453A33 ADD EAX,EDX
00453A35 SHR EAX,2
00453A38 MOV DL,7
00453A3A IMUL DL
00453A3C ADD AL,BYTE PTR DS:[EDI+21]
00453A3F SUB AL,BL
00453A41 SUB AL,30
00453A43 CMP AL,3
00453A45 JNZ SHORT uedit32.00453A4C
00453A47 MOV BYTE PTR SS:[ESP+F],1
00453A4C MOV EBX,DWORD PTR DS:[96DEF0]
00453A52 MOV EAX,CCCCCCCD
00453A57 MUL EBX
00453A59 MOV EAX,EDX
00453A5B SHR EAX,3
00453A5E MOV DL,0A
00453A60 IMUL DL
00453A62 ADD AL,BYTE PTR DS:[EDI+20]
00453A65 MOVSX CX,CL
00453A69 SUB AL,BL
00453A6B SUB AL,41
00453A6D SHL AL,4
00453A70 MOV BYTE PTR SS:[ESP+E],AL
00453A74 MOV EAX,CCCCCCCD
00453A79 MUL DWORD PTR DS:[96DEF4]
00453A7F MOV EAX,EDX
00453A81 SHR EAX,3
00453A84 MOV DL,0A
00453A86 IMUL DL
00453A88 MOV DL,BYTE PTR SS:[ESP+E]
00453A8C ADD DL,AL
00453A8E ADD DL,BYTE PTR DS:[EDI+22]
00453A91 MOV EAX,CCCCCCCD
00453A96 SUB DL,BYTE PTR DS:[96DEF4]
00453A9C SUB DL,41
00453A9F MOVZX BX,DL
00453AA3 MUL DWORD PTR DS:[96DEEC]
00453AA9 MOV EAX,EDX
00453AAB SHR EAX,2
00453AAE MOV DL,5
00453AB0 IMUL DL
00453AB2 ADD AL,BYTE PTR DS:[EDI+1B]
00453AB5 MOVSX EDX,BYTE PTR SS:[ESP+11]
00453ABA SUB AL,BYTE PTR DS:[96DEEC]
00453AC0 SUB AL,30
00453AC2 MOV BH,AL
00453AC4 MOVSX AX,BYTE PTR DS:[EDI+21]
00453AC9 ADD AX,CX
00453ACC MOVSX ECX,BYTE PTR SS:[ESP+12]
00453AD1 ADD AX,DX
00453AD4 MOVSX EDX,BYTE PTR SS:[ESP+10]
00453AD9 ADD AX,CX
00453ADC MOVSX ECX,BYTE PTR SS:[ESP+13]
00453AE1 ADD AX,DX
00453AE4 ADD AX,CX
00453AE7 CMP BX,AX
00453AEA JNZ uedit32.004538C8
00453AF0 CMP SI,2B6F
00453AF5 JNB SHORT uedit32.00453B13
00453AF7 CMP BYTE PTR SS:[ESP+F],0
00453AFC JNZ SHORT uedit32.00453B13
00453AFE MOVZX EDX,SI
00453B01 MOV EAX,2B6F
00453B06 SUB EAX,EDX
00453B08 CMP EAX,17C
00453B0D JG uedit32.004538C8
00453B13 POP EBX
00453B14 POP EDI
00453B15 MOV EAX,1
00453B1A POP ESI
00453B1B MOV ECX,DWORD PTR SS:[ESP+D8]
00453B22 XOR ECX,ESP
00453B24 CALL uedit32.0076266A
00453B29 ADD ESP,0DC
00453B2F RETN
00453B30 MOV ECX,DWORD PTR SS:[ESP+E0]
00453B37 POP EDI
00453B38 POP ESI
00453B39 XOR ECX,ESP
00453B3B XOR EAX,EAX
00453B3D CALL uedit32.0076266A
00453B42 ADD ESP,0DC
00453B48 RETN
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!