能力值:
( LV2,RANK:10 )
|
-
-
2 楼
问老鸟吧.可能是加密了~
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
不可能加密.我自己做习题时写的
这是源码
TITLE Program Template
;程序的描述4.2.3习题
;作者
;创建日期
;版本
;这一章的习题是这样理解的.前面的参数的值更改后应不影响后面习题.
;日期: 修改者
INCLUDE Irvine32.inc
.data
val11 BYTE 10h
val12 WORD 8000h
val13 DWORD 0FFFFh
val14 WORD 7FFFh
val21 BYTE 10h
val22 WORD 8000h
val23 DWORD 0FFFFh
val24 WORD 7FFFh
val31 BYTE 10h
val32 WORD 8000h
val33 DWORD 0FFFFh
val34 WORD 7FFFh
val41 BYTE 10h
val42 WORD 8000h
val43 DWORD 0FFFFh
val44 WORD 7FFFh
val51 BYTE 10h
val52 WORD 8000h
val53 DWORD 0FFFFh
val54 WORD 7FFFh
val61 BYTE 10h
val62 WORD 8000h
val63 DWORD 0FFFFh
val64 WORD 7FFFh
val71 BYTE 10h
val72 WORD 8000h
val73 DWORD 0FFFFh
val74 WORD 7FFFh
.code
main PROC
;1.写一条val2加1的指令.
inc val11
;2.写一条从val3中减掉EAX的指令.
sub val23 ,eax
;3.写一条或多条指令从var2中减去val4.
mov bx ,val34
sub val32 ,bx
;4如果使用add指令对val2加1,那么进位标志和符号标志的什分别是什么?
add val42 ,1 ;CF=0,SF=0,OF=0
;5如果使用add指令对val4加1,那么进位标志和符号标志的值分别是什么?
add val54 ,1 ;CF=0,SF=1,OF=1
;6每条指令执行后,在提示处写下进位标志、符号标志、零标志和溢出标志的值:
mov ax ,7ff0h
add al ,10h ;a. CF=1 SF=0 ZF=1 OF=0
add ah ,1 ;b. CF=0 SF=1 ZF=0 OF=1
add ax ,2 ;c. CF=0 SF=1 ZF=0 OF=0
;7用汇编语言实现下面的表达式:AX=(-val72+BX)-val74
neg val72
add val72,BX
mov AX,val72
sub ax,val74
;12挑战:写两条连续的指令来同时设置进位标志和溢出标志位的值
mov al,1001b
add al,1010b
exit
main ENDP
;(在此插入其他子程序)
END main
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
[QUOTE=小晴;370237]自己做汇编练习时写的程序.用OD调试如下
00401010 |> \FE05 00404000 inc byte ptr [404000]
00401016 |. 2905 0C404000 sub [40400C],eax
0040101C |. 66:8B1D 19404>mov...[/QUOTE]
不可以吧?
关注..学习。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
有点邪门,不是说源程序在编译时常量,变量名之类的已经被转化为地址了吗.那么IDA怎么在反汇编时能够识别出常量名.
奇怪....
为什么OLLYICE又不能了呢....
高手快点出现吧.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
明白了,"Option选项"-->"Debugging Options调试选项"-->"disasm反汇编"-->"Show symbolic addresses显示符号地址"-->"OK确定"
高手见笑了..我实在太菜了,这个都不知道
|
能力值:
( LV15,RANK:500 )
|
-
-
7 楼
那是作为调试信息存储在可执行文件体内的, IDA和OD都可以读取出来
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
,我关了OD.再打开后发现.选上那个选项也不行了.刚才还可以的.怎么回事
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
只有调试编译下才有吧. 如果你的程序发布了,我想随便那个调试工具都不会认出来了
|
能力值:
( LV3,RANK:30 )
|
-
-
10 楼
OD 如果有 IDA 一样的分辨能力,IDA 就要关门了
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
ida ...变量名被隐藏了?还是你设置的问题?
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
是这样的.
我的用MASM615编译程序的..
并且用了输出调试信息的选项
ml.exe -I"C:\Masm615\INCLUDE" -Zi -c -Fl -coff
link32.exe /libpath:"C:\Masm615\LIB" /SUBSYSTEM:CONSOLE /DEBUG $(FileNameNoExt).obj irvine32.lib kernel32.lib
红字部分都输出了调试信息.并且IDA可以顺利读取.我看OD的官方说明有这样的句子"源码级调试: OllyDbg 可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构。"
按道理说它是可以把我的常量名显示出来的.并且曾经有一次OD显示出来了常量名..之后我再试就没出现过.一定是我哪里的设置有问题?谁能告诉我问题出在哪里
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
求人不如求己.仔细翻了OD的帮助文件,找到了答案,CTRL+O扫描目标文件.即会显示常量名.谢谢各位朋友的热心回复,谢谢TT翻译小组的帮助文件.
|
|
|