首页
社区
课程
招聘
[旧帖] 请教 SEH 调试技巧!整了很久了,没有头绪!:( 0.00雪花
发表于: 2011-4-16 01:16 4460

[旧帖] 请教 SEH 调试技巧!整了很久了,没有头绪!:( 0.00雪花

2011-4-16 01:16
4460
本人正在研究一个网游的客户端...越研究越发现水太深...已经严重超出本人的技术水平...一顿瞎搞之后,信心完全散失...5555...

通过我的初步分析,可以肯定此网游的客户端用到了以下技术:

1.Debuger检测;检测到以后,直接退出,不给出任何提示...因为我菜呀,在被此问题折磨了一个月后,发现“HideOD”这个OD插件,选中所有选项后解决此问题。

2.SEH 实现所有互动操作的加密;比如:在我输入账号密码并点击登录后,客户端会产生一个“INT 3”,然后进入 SEH 处理流程...进入游戏后,无论聊天,还是移动,或是点击NPC等等...均才有这样的处理流程...

3.SMC 技术;客户端需要用到的29个DLL文件中,有一个DLL文件,使用OD打开后,提示“此DLL,可能被压缩和加密,分析结果可能不准确或者完全错误”...晕死...想死的心都有...:(

我现在的问题是:

1.不知道如何跟进 SEH 里面!我发现客户端主程序,以及主程序用到的几个主要的DLL中(包括那个加密的DLL)都有安装 SEH 处理程序,我不知道是哪一个在起作用!

2.浏览代码的时候,发现很多调用都包含“mov fs:[0],eax”这样的设置 SEH 的代码?我就更晕了!

望高手指点一二...

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 559
活跃值: (349)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
http://bbs.pediy.com/showthread.php?t=69281&highlight=%EF%BC%B3%EF%BC%A5+%EF%BC%A5%EF%BC%A8+%EF%BC%A8

SEH学习心得
-----------
dll是不是加壳了?
2011-4-16 09:44
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
fs:[0] 指向异常处理链表地址

链表中的每一项是一个ERR结构

ERR
PrevLink 指向下一个ERR结构    DWORD
CurrentHandle 异常处理程序入口   DWORD

所以
push 你的异常处理程序地址
push fs:[0]
mov fs:[0],esp

这样就可以添加一个异常处理程序
2011-4-17 10:56
0
雪    币: 294
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上说的我明白,问题是现成的稳定运行的SEH,在跟踪调试时的技巧!
2011-4-17 13:44
0
雪    币: 143
活跃值: (61)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
od-调试选项-异常处理-那个框框
…你知道该怎么做了。

这种强大的东西…下回来的时候就应该至少把选项看完。
2011-4-17 18:22
0
雪    币: 294
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我是想找到具体的 SEH 回调处理函数! 楼上说的只能断在进入 SEH 之前...:(
2011-4-17 20:50
0
雪    币: 143
活跃值: (61)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
7
SEH,有两种添加方法。
一种是gaohuia说的,一般是在写程序的时候(C++用try+expection)这种可以看栈堆,OD帮你分析了,写上”SEH处理程序”,就是。一般都是这种的。
还有一种是调用setexceptionhander(忘记函数名了),这种安装后,我不知道怎么跟踪~不过,可以给那个setxx函数下断点,看参数^_^

希望对你有帮助^_^
2011-4-18 11:17
0
雪    币: 143
活跃值: (61)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
SEH,有两种添加方法。
一种是gaohuia说的,一般是在写程序的时候(C++用try+expection)这种可以看栈堆,OD帮你分析了,写上”SEH处理程序”好像是”SEH处理句柄”,就是。一般都是这种的。
还有一种是调用setexceptionhander(忘记函数名了),这种安装后,我不知道怎么跟踪~不过,可以给那个setxx函数下断点,看参数^_^

具体是哪个SEH处理了,这个我说不清楚~你看看MSDN的exception hander ^_^

希望对你有帮助^_^
2011-4-18 11:19
0
游客
登录 | 注册 方可回帖
返回