首页
社区
课程
招聘
[旧帖] 被该死的循环递归搞得要吐血了~ 0.00雪花
发表于: 2007-1-18 23:32 4118

[旧帖] 被该死的循环递归搞得要吐血了~ 0.00雪花

2007-1-18 23:32
4118
我本来是想跟踪一个函数,就叫A函数吧.它主要是负责接受和处理键盘消息.然而跟进去一看,该函数体积倒是不大,但路径却很乱,无法直接看出流程来,只有慢慢跟,然而要命的是它居然是循环递归的,它内部又调用了另一个函数B,同样的体积不大,路径混乱.B反过来又调用了A,就这样两个东东你call我我call你的亲热的很,可害苦我了,跟踪这样的东西简直是折磨人.

我的目的本来是想看它是如何根据键盘输入,调转到对应的处理模块的.然而就是这两个看起来不大的搞怪东东,居然让人完全无法入手,老是在迷宫一样的流程里转来转去,最后头昏眼花还是没有找到出口.

我就不明白,为什么这样按道理来说应该是比较简单的键盘处理,怎么会牵涉到递归上去呢.比如我按a键,就跳a键处理模快,b键就跳b处理模块,以此类推,完全应该是很直观的处理方式吧.怎么可能会用得到超复杂的算法呢?

难道是设计者故意搞人的,不知道有没有牛哥对付这种循环递归有点心得呢~?

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
HOHO~~就在心情郁闷地发完贴子不久,不抱希望地重新设置好visual sice,因为我实在看不惯它的界面,平时极少用它.重启机器又用它来开始跟踪,天哪~~vsi终于暴发出它超强无敌的杀伤力啦~,通过反复观察堆栈结构和变化规律,我在路径上设了几个断点,突然有一次无意间断下来发现call [eax+58h]的目标地址变了,有门~!跟进去一看,哇塞,里面是好庞大的一座"城市"啊,不过虽然庞大,但每条路径却井井有条地非常规整有序,看着就让人赏心悦目.欢迎来到系统键盘命令处理中心

逆向程序的时看到这种巨型函数,但里面的路径很简单,主要就是一个switch型的多路分支,那就知道多半捡到宝贝了.因为它们通常都扮演一个路由的角色,它下面就是一个个具体的工作模块,而有了这一道道可爱的小门,那....
2007-1-19 01:29
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
3
哈哈
恭喜了
2007-1-19 12:01
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
小心走错门了,比尔盖茨要找你麻烦
2007-1-19 14:27
0
雪    币: 4441
活跃值: (805)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
贡喜楼主了,希望我也跟你一样好运
2007-1-24 09:48
0
雪    币: 143
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
就是,每当我看到一个庞大的Switch就知道离成功不远了
2007-3-14 15:14
0
游客
登录 | 注册 方可回帖
返回
//