系统断点在哪里&&如何断在TLS回调前
来源:互联网 发布:seo快速优化软件 编辑:程序博客网 时间:2024/05/17 21:45
系统断点
Windows
当你调试一个程序时,系统给了我们一次机会在被调试前。
ntdll.dll-LdrpDoDebuggerBreak()
如图:
通过一个int3断点来实现应用程序启动前将控制权传递给调试器。该函数一般被映射在0x771E1CC8,如果不存在调试器或者,启动应用的调试器不理睬这个断点,该函数自己的异常处理程序。
有些壳程序的反调试也是采用类似的手法,一旦壳程序的异常处理程序没有被调用,则表明有调试程序接管了壳程序埋伏的异常。
由ntdll将调用权交给主线程的位置-如何断在TLS回调前
我真心想分享自己调试的内容给你。但是不同系统位置不同。
win7专业版64bit系统32bit程序:
断在:0x77479ED0,即ntdll.dll(32bit)是一条call eax,可以断下所有模块加载前,包括TLS回调前和主程序前。位于___RtlUserThreadStart(x,x)
win7家庭版64bit系统32bit程序:
断在TLS前:
kernel32.dll;offset:3388
jnecall edx;在这里。push eaxcall
你可以通过用VS编写一个TLS回调程序,用VS断在该代码,通过栈回溯,找到是谁调用了该代码。
如何找到dll模块的调用关键点呢?
它在ntdll.dll(32bit)的如下位置:
掌握自己系统中的常用断点位置,调试时候少很多周折。
1 0
- 系统断点在哪里&&如何断在TLS回调前
- 在哪里?
- 《在哪里》
- 在哪里?
- 在哪里?
- 系统的 Daemons 放在哪里
- ERP系统的价值在哪里
- linux系统工程师的前途在哪里?
- Symbian系统究竟差在哪里?
- linux系统工程师的前途在哪里?
- 在系统抛出异常处设置断点
- 程序员该如何做事,前途在哪里
- 大学生就业难在哪里,如何解决
- 如何查看方法在哪里被调用
- 在FP中如何设置条件断点
- JTAG如何实现在断点呢?
- 如何在myeclipse中取消断点
- 悟空在哪里?奶妈在哪里?
- C++实验6-数组合并
- 自定义Exception
- Integer int 比较
- Kruskal 算法 (MST)
- collection和Map区别
- 系统断点在哪里&&如何断在TLS回调前
- spring+resteasy(JSF)搭建接口
- c++实验6-数组合并
- class中并不是public没有就好
- USACO 4.3 高精度
- Freemarkar工具类
- 为什么很多人辛劳一生,仍然生活在社会底层?
- 序列化和反序列化
- SpringMVC---HelloWorld程序的创建步骤