首页
社区
课程
招聘
[求助]调试linux下的FlexLM daemon时的断点设置
发表于: 2012-5-18 23:34 13078

[求助]调试linux下的FlexLM daemon时的断点设置

2012-5-18 23:34
13078
daemon程序是linux下面的,版本为10.1,没有ECC,手上也有正常的lic。
在linux下面用objdump -D daemon反汇编后,能找到好几处3D4DA1D6的标志,于是用gdb进行调试,设置断点在3D4DA1D6标志处(b *0x地址),发现断不下来,以前搞过的同学们有没有设断的经验啊

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
再学linux**
2012-5-19 00:06
0
雪    币: 150
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我也遇到了同样的问题
2012-5-23 13:32
0
雪    币: 807
活跃值: (2233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
找到这些标志所在函数的出口,统统设置断点,然后调试,必然有一处可以断下。断下返回后,找到函数入口下断点,再从函数入口开始跟踪,杜绝所有试图跳过标志的长跳转,你就可以如愿以偿了。
2012-5-23 13:45
0
雪    币: 150
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢老伙计的回复,我把长跳转nop了以后,停在3D4DA1D6上,出来这个图上的提示:
我再试试扩大范围
2012-5-24 07:43
0
雪    币: 807
活跃值: (2233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
跟你们交流真是累,比如,你现在是名医生,你的病人病得很重,他来不了医院,只凭家属给你描述一下症状,你就能手到病除?除非你是上帝。

    不就是 LSF PlatForm 嘛,我还当是什么见不得人的东西!
2012-5-24 10:45
0
雪    币: 150
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感请老伙计热情帮忙,病人来了,请看附件
我是另外一个软件,问题跟楼主非常相似。
2012-5-24 15:06
0
雪    币: 807
活跃值: (2233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
  46e19b:       be 01 00 00 00          mov    $0x1,%esi
  46e1a0:       e8 9e 1d 01 00          callq  47ff43 <tolower@plt+0x7ccab>
  46e1a5:       85 c0                   test   %eax,%eax
  46e1a7:       0f 84 30 04 00 00       je     46e5dd <tolower@plt+0x6b345>               <--- 只要这里不要跳走就可以了
  46e1ad:       48 c7 85 e8 fd ff ff    movq   $0x618f50,0xfffffffffffffde8(%rbp)
2012-5-24 20:15
0
雪    币: 150
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
老伙计你好,十分感谢你帮我看程序
我试了你的方法,跟我的是一样的,还是出那个错,而且F9只停一次,也不是seed1
错误如下图:
上传的附件:
2012-5-24 21:16
0
雪    币: 807
活跃值: (2233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
      我是在linux系统上用gdb直接调试的,没有任何问题,估计你的方法有误。

问题1:0x46e1a7 指令的文件偏移计算是否正确,修改代码的位置是否正确?
问题2:0x46e1a7 需要连续充填 6 个 nop 你是这样做的吗?

      要想确定这些问题很好办,把你修改过的 seisup 用 objdump 反汇编出来,就贴出我贴出那几行地址的代码就可以了。
2012-5-24 21:35
0
雪    币: 150
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
好,我贴图上来,不知道问题出在哪了,真是奇怪,我也一直觉得怪
上传的附件:
2012-5-24 21:53
0
雪    币: 807
活跃值: (2233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
奇怪,没有道理。

    你在Windows下面用 IDA 进行远程调试?那么Windows 下的 seisup 和远端 linux 系统下的 seisup 必须是同一个修改或未经修改的 seisup。这一点你确定没有问题?

    要不你就这样,加载原始没有经过修改的 seisup, 在 0x46e1a7 处设执行断点,断下后,人为地把指令指针改为 0x46e1ad,然后再继续,试试看吧,我用 gdb 就是这么干的。
2012-5-24 22:08
0
雪    币: 150
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
  

十分感谢您一而再,再而三的帮助我,这么及时。
我调试应该没有问题的,其它的我也是这么调试的,没有出现过问题。
就这个不知道为什么,可能是IDA太老了,我试试新版本。
或许哪个地方出了点什么问题。我还是细查查,实在不行,我学学gdb.
今天有些晚了,先到这。

再次感谢!
2012-5-24 22:21
0
雪    币: 150
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我又试了试,是我的调试器有问题,感谢老伙计无私帮助
还得学学gdb.
2012-5-25 21:30
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
多谢老伙计的帮忙,我在gdb里试着直接断在这些标志所在的函数处,也断不下来,看来还是功力不够。
2012-5-26 12:36
0
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这个比较复杂。
2012-8-14 22:47
0
雪    币: 102
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这个我很早就找出seed了,楼主现在找到了吗?当初忘记是linux还是windows平台上找的了。
2012-8-23 17:29
0
雪    币: 324
活跃值: (172)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
老版本的找到了seeds还有点用,现在都用ECC了,找了seeds也没啥用了。反正都是要破,索性直接爆破了!
2012-8-30 13:03
0
游客
登录 | 注册 方可回帖
返回
//