首页
社区
课程
招聘
[旧帖] od使用问题 0.00雪花
发表于: 2009-12-16 04:18 4905

[旧帖] od使用问题 0.00雪花

2009-12-16 04:18
4905
1. 动态加载的api函数如何下断点,除了bp ,因为bp把系统调用都中断了调试起来很麻烦.
2. 内存访问断点怎么下,alt+b 里面只有我下过的代码上的断点,如何我要在堆积或代码访问指定数据时断点,如何下呢?
3. ida中的hex-rays插件,好像好些pe中的函数也转不出来F5空白,Ctrl+F5结果下差几个函数,难到是函数中特定的代码不能识别?

4.下面是F5出来的一段代码其中的_EAX不知道是怎么会事,如果是eax的值,那么如何把值赋给_EAX ,我想在把这代码编译,请前辈们指教!!!

//----- (0001052E) --------------------------------------------------------
int __cdecl sub_1052E()
{
  int result; // eax@1
  int v3; // [sp+0h] [bp-4h]@1

  __asm { mov     eax, cr0 }
  v3 = _EAX;
  _EAX &= 0xFFFEFFFFu;
  __asm { mov     cr0, eax }
  result = v3;
  dword_11CD0 = v3;
  return result;
}

5.   还有下面Ctrl+F5出来的一段代码不解一个变量怎么一会被函数调用还有参数,一会是被变量赋值。 最后在ida中查看居然是空的。实在是不解~~

//声明
extern _UNKNOWN loc_10630; // weak

//被当函数调用
int __stdcall sub_10644()
{
      *(_DWORD *)&v4 = loc_10630(a1);

//被当变量赋值
loc_10630 = *(_DWORD *)stru_12630

//IDA中确是空的
.text:00010630
.text:00010630 loc_10630:                              ; CODE XREF: sub_10644+Bp
.text:00010630                                         ; DATA XREF: sub_10702+48o
.text:00010630                 nop
.text:00010631                 nop
.text:00010632                 nop
.text:00010633                 nop
.text:00010634                 nop
.text:00010635                 nop
.text:00010636                 nop
.text:00010637                 nop
.text:00010638                 nop
.text:00010639                 nop
.text:0001063A                 nop
.text:0001063B                 nop
.text:0001063C                 nop
.text:0001063D                 nop
.text:0001063D ; ---------------------------------------------------------------------------
.text:0001063E                 db 6 dup(0CCh)

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以下硬件断点he
2009-12-16 05:02
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
其他的不是很清楚.我也刚学OD..
第2个问题..你可以在OD的数据面板中对HEX数据前4个字符按右键.断点.内存访问.然后下次当你运行程序到这个断点的地方时.就会被自动断下了..用完后要记得删除内存访问断点..
2009-12-16 15:11
0
雪    币: 178
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
od 载入exe时总是提示访问违规:正在执行[2C000000] - 使用Shift+F7/F8/F9来忽略程序异常
在“同时忽略以下指定的异常或范围”选中后
首个异常输入2C000000
末个异常输入2C000000
结果还是一样。。
Shift+F7发现还在ntdll领空

Shift+F9后进入程序入口。在F9又停在 异常0EEDFADE-使用Shift+F7/F8/F9来忽略程序异常
发现是在模块-Kernel32中,而忽略在kernel32中的内存访问异常也被选中

请问如何才能忽略,不让它每次都提示? 难到我机子有问题?
2009-12-16 16:03
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
刚学来着  看不懂  

帮你顶一下  等待高手.....
2009-12-16 22:14
0
雪    币: 178
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
1. 是否没有什么更好的办法

2. 是因为我设置访问断点后重新行运的od,这东西只能在当前有效重启又得重设也只中断一次!

3. 确实有转不出来的,这些正常,谁让我们是反汇编的本来产品也没做这样的保证能无错返原~ 还是得参照asm自己修改,且不只是这类问题,很多反出来的也得自己好好修改什么类型啊结构啊等等。。。

4. 代码中的_EAX其实就是eax,只是hex-rays1.1 不知道为何这样处理,经asm分析,还原后的代码该是这样(vs2005编译通过,还没验证运行结果是不是相同):
int __cdecl sub_1052E()
{
     int result; // eax@1
     int v3;     // [sp+0h] [bp-4h]@1
     __asm { mov     eax, cr0 }
     __asm { mov     v3,   eax}
     __asm { and      v3 , 0xFFFEFFFF}
     __asm { mov     cr0, eax }
     result = v3;
     dword_11CD0 = v3;
     return result;
}

5. 两天的分析他有50%是个函数指针,有待验证。

2楼:  动态调用的api使用硬件断点如何能向bpx那样断在用户调用处?至少我还没通过。
现在用的比较笨的方法 bp后断在api内部,取消断点,在Alt+F9直到返回用户调用api的代码,设置断点~

3楼:之前我也是这么做的试了几次都不行就没在试了,结果g.cn 说明: 内存访问只能本次生效Ctrl+F12后又得重设, 只能设一个。一般我都是在第一次调试设置好断点在重新运行让他断下所以。。。。。。

4.楼:机子因该不会有问题:) 还没解决,计划中。

今天来做标记的!!!
            用上IDA5.5 hex-rays1.1 了,感觉F5还是不够用
2009-12-21 01:41
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
刚学来着  看不懂  

帮你顶一下  等待高手.....
2009-12-21 10:58
0
雪    币: 3003
活跃值: (464)
能力值: ( LV15,RANK:1395 )
在线值:
发帖
回帖
粉丝
8
第一个问题;
用bpx就会断在程序领空,运行时不是关键地方就去掉断点
2009-12-22 12:54
0
游客
登录 | 注册 方可回帖
返回
//