首页
社区
课程
招聘
[旧帖] 请教下断问题 0.00雪花
发表于: 2013-4-15 19:32 6394

[旧帖] 请教下断问题 0.00雪花

2013-4-15 19:32
6394
现在有个软件打开的时候弹出个窗口提示注册,但输入后软件直接重启,然后如果输入的正确就不在弹出输入窗口,错误就弹出,现在想请教下怎么下断点?下过创建窗口函数没有断下来。也没有弹出信息可以下段,运行后暂停然后找位置,停在了一个函数上,然后函数里全部套的别的函数,试了一下午没找到。请教各位大侠有什么好的方法和思路下断点吗?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 80
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你跟一下程序  看是不是记录到某个文件或是注册表中了  然后对症下药
2013-4-15 20:24
0
雪    币: 36
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
下硬件继点试下
2013-4-15 21:24
0
雪    币: 340
活跃值: (207)
能力值: ( LV3,RANK:36 )
在线值:
发帖
回帖
粉丝
4
确实有个文件存了用户名  密码没有,在OPENFILE下断也断不下来
2013-4-16 01:05
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个最好是trace一下两种情况,比较一下执行过程的区别
1. 刚安装,没有输入过任何注册信息
2. 输入过注册信息
两个不同的地方应该是2比1多了注册检查
找到地方就可以下断点了
2013-4-16 01:43
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
6
弹 对话框提示注册的,通用方法: bp MessageBoxA,bp MessageBoxW
2013-4-16 09:13
0
雪    币: 340
活跃值: (207)
能力值: ( LV3,RANK:36 )
在线值:
发帖
回帖
粉丝
7
下了 没断到什么
2013-4-16 14:03
0
雪    币: 257
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
你搜索一下 对话框中的提示字符串, 看看有没有, 有的话可能就在那附近, 好好看看
2013-4-17 12:57
0
雪    币: 340
活跃值: (207)
能力值: ( LV3,RANK:36 )
在线值:
发帖
回帖
粉丝
9
重启验证  搜过搜不到东西
2013-4-22 20:49
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
找个注册表监视器,你先假注册下,获取字符串 ,然后OD载入,查找字符串,下断点,单步进入
2013-4-24 16:35
0
雪    币: 27
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
ProcessMonitor看一下先
2013-4-25 12:51
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
试一下 你在按 button确定的时候 断下!
教程:http://hi.baidu.com/tomorrow93/item/d58d78f8ece3180bc6dc45f2

!!!!!!!!!!
求看雪币, 我要成为 会员啊!!!!!!!!!!

MFC程序按钮入口地址查找方法//用OD装入MFC程序运行起来,在OD里 查看->窗口 打开窗口面板 在所要的中断按钮右键 选"在ClassProc上设消息断点",消息里选"202 WM_LBUTTONUP",好了按确定!

//这样完成后点击按钮时OD就在77D3AFFE中断了下来
77D3AFFE > 8BFF mov edi, edi
77D3B000 55 push ebp
77D3B001 8BEC mov ebp, esp
77D3B003 8B4D 08 mov ecx, dword ptr ss:[ebp+8]
77D3B006 56 push esi
77D3B007 E8 C4D4FDFF call USER32.77D184D0
77D3B00C 8BF0 mov esi, eax
77D3B00E 85F6 test esi, esi
77D3B010 74 38 je short USER32.77D3B04A

//这里是USER32领空!所以我们要回到程序领空,在OD菜单里 查看->内存 在我们程序的.text区断访问设置中断

//然后F9运行,OD就在004019C8断了下来,这里就是我们程序领空了
004019C2 .- FF25 14204000 jmp dword ptr ds:[<&MFC42.#5163_?OnWndMsg@CWnd@@MAEHIIJPAJ@Z>]
004019C8 .- FF25 18204000 jmp dword ptr ds:[<&MFC42.#6374_?WindowProc@CWnd@@MAEJIIJ@Z>]
004019CE .- FF25 1C204000 jmp dword ptr ds:[<&MFC42.#4353_?OnAmbientProperty@CWnd@@UAEHP>
004019D4 .- FF25 20204000 jmp dword ptr ds:[<&MFC42.#3798_?GetSuperWndProcAddr@CWnd@@MAE>
004019DA .- FF25 24204000 jmp dword ptr ds:[<&MFC42.#4837_?OnNotify@CWnd@@MAEHIJPAJ@Z>]
004019E0 .- FF25 28204000 jmp dword ptr ds:[<&MFC42.#4441_?OnCommand@CWnd@@MAEHIJ@Z>]

//但不是我们所要找的位置,还要继续分析.这里是最重要的了,在这地方有N多的连续jmp指令,我们向下查找,
//找到OnCmdMsg,也就是下面的00401B66,在00401B66按F2设置中断
00401B66 .- FF25 30214000 jmp dword ptr ds:[<&MFC42.#4425_?OnCmdMsg@CDialog@@UAEHIHPAXPA>;
00401B6C .- FF25 34214000 jmp dword ptr ds:[<&MFC42.#3597_?GetRuntimeClass@CDialog@@UBEP>;
00401B72 $- FF25 38214000 jmp dword ptr ds:[<&MFC42.#324_??0CDialog@@QAE@IPAVCWnd@@@Z>] ;

//再F9运行起来 程序终于在00401B66断了下来

//然后F8让它执行下一步,运行到这里,这里是MFC领空
73D9DE90 > 8BFF mov edi, edi
73D9DE92 55 push ebp
73D9DE93 8BEC mov ebp, esp
73D9DE95 53 push ebx
73D9DE96 8B5D 08 mov ebx, dword ptr ss:[ebp+8]
73D9DE99 56 push esi
73D9DE9A 57 push edi
73D9DE9B FF75 14 push dword ptr ss:[ebp+14]
73D9DE9E 8B7D 0C mov edi, dword ptr ss:[ebp+C]
73D9DEA1 FF75 10 push dword ptr ss:[ebp+10]

//再像上面的 在OD菜单里 查看->内存 在我们程序的.text区断访问设置中断

//再F9运行起来,在00401340中断下来,这里虽然是程序自己领空,但还不是我我们所要地址

00401340 . B8 20234000 mov eax, MyCalcul.00402320
00401345 . C3 retn

//F8两次后,又到MFC的73D32383 位置
73D32383 /EB 15 jmp short MFC42.73D3239A
73D32385 |FF75 08 push dword ptr ss:[ebp+8]
73D32388 |FF75 0C push dword ptr ss:[ebp+C]
73D3238B |53 push ebx
73D3238C |FF76 04 push dword ptr ds:[esi+4]
73D3238F |E8 DAFEFFFF call MFC42.#1145_?AfxFindMessageEntry@@YGPBUAFX_MSGMAP_ENTRY@@P>
73D32394 |85C0 test eax, eax

//这时还要 像上面的 在OD菜单里 查看->内存 在我们程序的.text区断访问设置中断
//F9运行起来,终在00401590断了下来 这里就是入口地址了!!

00401590 . 83EC 64 sub esp, 64
00401593 . A1 24304000 mov eax, dword ptr ds:[403024]
00401598 . 66:8B15 2C304>mov dx, word ptr ds:[40302C]
0040159F . 53 push ebx
004015A0 . 56 push esi
004015A1 . 8BF1 mov esi, ecx

//以上地址会因程序的不同而不一样,但只要是MFC程序,按这个方法来找出入口地址都会找到的~
2013-4-25 14:17
0
游客
登录 | 注册 方可回帖
返回
//