吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1890|回复: 5
收起左侧

[求助] 对于OD调试下API断点的疑惑

[复制链接]
Sezangle 发表于 2020-2-22 21:56
今天在做一个非常简单的crackme,序列号是明文存储的,非常容易看,关键的判别函数就在这里
然而我之后做了一些东西,感觉非常奇怪,希望有大佬能够帮我看一下这个问题。整个程序就是先通过GetwindowTextA函数获取输入的字符串,然后调用Istrcmp函数进行判断即可,而且整个程序调用这两个API函数的地方只有一个,我在GetwindowTextA和Istrcmp函数的第一行分别下断(系统领空内),之后我直接执行,发现居然没有断到GetwindowTextA内,而是断到了Istrcmp内,并且堆栈的内容也很奇怪,为什么程序没有先提取我的字符串?而是先断到了Istrcmp函数里?这是什么原因呢???希望有人能给我讲一下这是为什么?

这是关键的代码

这是关键的代码

断点如图

断点如图

断点停住的位置

断点停住的位置

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

无闻无问 发表于 2020-2-23 08:48
手机打字太辛苦,但是我还是愿意回复你。使用GetWindowsText断不下的原因有很多:一是程序里面有很多模块都使用了这个函数,而你下段断的函数只是其中一个模块儿的,并而不是你要断下的那个模块。二个原因就是断点断不下,很可能就是由于其中某个插件的原因导致断不下来,换个od或用x64dbg就行。,三是清理OD分析记录,四是获取文本框内容可能没有使用这个函数。比如可以用GetDlgItemText或消息方式…
总之原因太多了,你试着一个一个排查吧。希望对你有点帮助。
 楼主| Sezangle 发表于 2020-2-23 09:47
无闻无问 发表于 2020-2-23 08:48
手机打字太辛苦,但是我还是愿意回复你。使用GetWindowsText断不下的原因有很多:一是程序里面有很多模块都 ...

还有个小问题想问一下您,我ctrl+n查看调用的函数,是不是只能看本模块所调用的函数呢?比如我在程序领空这块ctrl+n查看调用函数,比如发现有GetwindowtextA这个函数,并且下一个输入断点(就是在call这个函数的位置下断),我发现只有一个地方被断了,是不是只能说明在当前这个模块里只有1处调用,其他模块也有可能对这个函数有调用?
无闻无问 发表于 2020-2-23 12:12
本帖最后由 无闻无问 于 2020-2-23 12:13 编辑
Sezangle 发表于 2020-2-23 09:47
还有个小问题想问一下您,我ctrl+n查看调用的函数,是不是只能看本模块所调用的函数呢?比如我在程序领空 ...

这个不一定,有些地方代码假如需要特定的条件才会执行,并不说明它不调用…GetWindowsTextA/W这个函数很多控件都会用,按理说会不断断下,如果只有一处断,不太正常…你换个od,或用x64dbg,或者下硬件断点,试试,排除原因…
wuaiFan 发表于 2020-2-23 20:46
小萌新来偷学
 楼主| Sezangle 发表于 2020-2-24 17:13

都是萌新hhhhhhhh
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表