IsDebuggerPresent原理及其 c++实现
2024-08-28 20:53:31
在IsDebuggerPresent下断,步入得到如下代码:
750E38F0 | A1 | mov eax,dword ptr fs:[] | eax:std::cout
750E38F6 | 8B | mov eax,dword ptr ds:[eax+] | eax:std::cout
750E38F9 | 0F B6 | movzx eax,byte ptr ds:[eax+] | eax:std::cout
750E38FD | C3 | ret |
750E38FE | CC | int3 |
750E38FF | CC | int3 |
750E3900 | CC | int3 |
750E3901 | CC | int3 |
750E3902 | CC | int3 |
在fs:[18]下断点得出
其中fs:[18] =7EFDD000
eax+30就是这里
再来看看7EFDE000里的值
ds:[eax+2] = 1 .所以是调试状态
那么c++一行代码直接可以修改这个值,使IsDebuggerPresent失效了
*((unsigned char *)(*(DWORD*)(__readfsdword(0x18) + 0x30)) + 0x2) = ;
最新文章
- c# 调用 matlab
- hover事件优化(延时操作)
- Selenium2学习-023-WebUI自动化实战实例-021-获取浏览器显示区域大小,通过 WebDriver 截图功能
- Linux下Nagios的安装与配置
- 幸运数字(number)
- swift语言学习之UITableView分割线左边到头的解决
- Consumer Client Re-Design (翻译)
- jquery mobile 移动web
- UITableView的分割线不满屏的解决方法
- ASP.NET MVC 3: Razor中的@:和语法
- Tomcat启动慢解决方法(本人CentOS7.4系统)
- 浅析vue2.0的diff算法
- 服务集群session问题
- css里px em rem特点(转)
- SQL Server查询数据库所有存储过程、触发器、索引信息SQL分享
- mongoose事务操作,参考官网
- TFS online build change web.config
- LeetCode 206 Reverse Linked List 解题报告
- vue 的进度条组件
- uint8_t / uint16_t / uint32_t /uint64_t
热门文章
- git合并
- MySql与python交互
- datetime.timedelta类
- hdu 1237 简单计算器 (表达式求值)【stack】
- snmp 里面oid对应的信息 MIB
- angular笔记_8(事件)
- CSS选择器、样式、盒模型
- wiki Confluence 百科介绍
- BZOJ.1492.[NOI2007]货币兑换(DP 斜率优化 CDQ分治/Splay)
- 潭州课堂25班:Ph201805201 django 项目 第二十八课 新闻elasticsearch搜索前后功台能实现 (课堂笔记)