首页
社区
课程
招聘
(谢谢各位大大,已解决:-)) 小菜鸟问汇编语句和调试的问题
发表于: 2006-5-12 15:27 4154

(谢谢各位大大,已解决:-)) 小菜鸟问汇编语句和调试的问题

2006-5-12 15:27
4154
感谢小虾斑竹那么详细的回复! 感动啊 ..

小菜向各位高手求助以下6个问题:

1.    cmp ecx , 08
      ja 415011

这是不是说,如果ecx > 08 就跳到415011 ?

2.   hit调试一个程序时,我把int3和单步异常忽略都去掉了,怎么程序还说“单步调试”然后关闭 ,难道有些程序anti code能让hit不能工作?

3.有时中断的函数过程ret时会进入系统领空, 怎么会出现系统API call程序代码的事?

4.test 几乎相当于and吗?
那 test eax ,eax
   
一般是不是说不为0就跳?


5.我刚开始学调试,
调试程序中跟踪关键数据位置及变化 重要还是 流程图更重要?


有什么技巧或要注意的吗?

6. swith (1..3)是不是msg=1-3 , 为什么同一个窗口会有很多相同的 swith(相同) ?

7.olldbg中能用符号代替某变量吗,如用Key代替[414578];

在先此谢谢各位大虾了 ::

 

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
恩恩,问的都是好问题。

本人现在也是新手,共同进步了。

回答你第四个问题。

TEST EAX EAX

TEST = AND

然后由后面的指令来判别是0跳还是不为 0跳.
2006-5-12 17:09
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
1.    cmp ecx , 08
      ja 415011

这是不是说,如果ecx > 08 就跳到415011 ?

应该是ecx >= 08 就跳到415011

2.   hit调试一个程序时,我把int3和单步异常忽略都去掉了,怎么程序还说“单步调试”然后关闭 ,难道有些程序anti code能让hit不能工作?

没用过hit

3.有时中断的函数过程ret时会进入系统领空, 怎么会出现系统API call程序代码的事?

SEH、回调函数、CallWindowProc都是系统API call程序代码的

4.test 几乎相当于and吗?
那 test eax ,eax

test运算方式是and,但和and不同,and会返回一个值,而test只修改标志位。
   
一般是不是说不为0就跳?
跳不跳要看是jz指令还是jnz指令。

5.我刚开始学调试,
调试程序中跟踪关键数据位置及变化 重要还是 流程图更重要?

有什么技巧或要注意的吗?

如果你都掌握那自然比掌握其中一个要好。

6. swith (1..3)是不是msg=1-3 , 为什么同一个窗口会有很多相同的 swith(相同) ?
swith是条件判断语句,一个程序有时是有很多这样的的分支代码的,swith(1..3)意思是这个分支的条件在1―3之间

7.olldbg中能用符号代替某变量吗,如用Key代替[414578];
利用*.map文件应该可以实现(不过我没试过,不能保证可行)
2006-5-12 17:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢小虾大大那么详细的讲解, 感动啊 ..
2006-5-12 17:34
0
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
1.    cmp ecx , 08
      ja 415011

ecx = 08 不跳的
2006-5-12 18:48
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
最初由 heXer 发布
1. cmp ecx , 08
ja 415011

ecx = 08 不跳的

测试了一下,确实,ja > 则跳,jae才是 >= 则跳。
谢谢heXer指正。
2006-5-12 19:04
0
雪    币: 222
活跃值: (26)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
swith?
是switch吧。
2006-5-12 21:18
0
雪    币: 235
活跃值: (40)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
jg  xxxx            //Jump short if greater (ZF=0 and   SF=OF)
  ja  xxxx            //Jump short if above (CF=0 and ZF=0)
  
  jl  xxxx            //Jump short if less (SF<>OF)
  jb  xxxx            //Jump short if below (CF=1)
这里我们要讨论的其实就是这几个英文单词的含义,如果你能正确的理解这些单词,对你今后的汇编开发和阅读会有很多好处。
首先我们看 greater 和 above,greater 是较大的意思,而 above 是在什么之上的意思,两者似乎非常类似,但从数学的角度看,却有着本质的区别。
greater 是指一个有符号数的大小,例如:
0x80000000 < 0x7FFFFFFF
而 above 是指一个无符号数的大小,例如:
0x80000000 > 0x7FFFFFFF
同理,less 较小,而 below 是在什么之下,有了这样清醒的认识,将来在阅读和使用是就不容易犯错误。
以上是引用的,也许有用。
2006-5-12 23:13
0
游客
登录 | 注册 方可回帖
返回
//