软件中反跟踪技术和软件调试
反跟踪技术
1、调试器分类:用户模式调试器(OD、VC++调试器、DRW2000)和内核模式调试器(SoftICE)
2、反调试技术:
a、窗口方法检测:利用WIN API函数查找调试器窗口类名或者标题窗口,找到则表示监视程序运行。几种调试器类名:flyOD或者OllyDBG(检测flyODBUG)、SICE(检测softICE)、DRW(检测DRW2000)
b、检查父进程:遍历操作系统所有进程,检查出当前进程是否为父进程。win32中一般的父进程:Explorer.exe、Cmd.exe、Service.exe
3、断点检测技术:
a、检测软件断点:调试器调试时常用int3断点,,检测时只需要检测函数首地址的机器码是否为0xCC(INT3)
b、屏蔽硬件断点:在调试器中能用的硬件断点只能存在Dr0-Dr3寄存器中,因此可以不间断地占用全部4个硬件断点组织软件的断点调试。
c、中间调用API:将API函数的一部分代码放到执行代码中,在执行这段代码后跳转到API函数剩余的代码,这样设置的断点就会失效。
4、花指令反静态分析:加入无用指令扰乱反汇编软件使其无法找到指令的其实位置(操作码)。去花方式:找到花指令后NOP掉。
5、CRC校验:散列函数的一种,检测文件完整性。将字串转换成CRC32值后存储,运行时重新转换后与之前的对比检测是否完整
6、程序自生成技术:利用前面的程序生成将要执行的代码,反汇编指令并不是要执行的代码,而且可以隐蔽关键指令。
软件调试
调试需求
1、调试功能函数:软件的加密、解密函数、网络软件的数据包发送函数、接收函数、窗口函数、算法函数、文件处理函数。
2、条件判断查找:修改跳转去向。
3、解密资源文件:存在用户信息、监测数据、资源等
4、截获网络数据包
5、还原数据结构:数组、链表、二叉树、结构体、类
6、调试寻址方式:函数入口地址、数据结构的访问地址、某个对象的this指针地址。
调试过程
1、查看软件是否加壳(保护壳、压缩壳、混合壳)、查看软件开发语言、查看软件本身提示信息。
2、反汇编可执行程序,找突破口。
3、反响追踪,找到代码位置。
4、记录调试过程,编写文档。
调试方法
1、设置断点:代码定位断点、数据断点、调试断点。
2、字符串追踪
3、API函数追踪。常见的有:GetWindowText、CreateFile、LoadLibrary、CreateProcess
4、代码屏蔽:屏蔽后推断这段代码实现了什么功能。测试某段代码和某个函数功能。
5、内存修改:测试内存中某段数据的实际意义。
转载于:https://www.cnblogs.com/miaohj/p/5380428.html
软件中反跟踪技术和软件调试相关推荐
- 在博途软件中通过无线路由器实现远程无线调试
在博途软件中通过无线路由器实现远程无线调试 现场工程师调试西门子PROFINET网络项目时,需要将笔记本电脑通过网线和PLC系统相连来实现调试,如果PROFINET网络中加入一个TP-LINK无线迷你 ...
- OpenGL利用鼠标、键盘分别实现那些绘图软件中的橡皮筋技术
橡皮筋技术: 如果大家用绘图软件画过直线,你就会发现选中那些直线.椭圆.矩形画图工具后,在画布上单击拖动就能画出我们所需尺寸的对应图形,十分方便,这就是所谓的橡皮筋技术. 实现橡皮筋技术的关键函数: ...
- 软件中存在的技术风险
风险1:不理解三层架构,经验不足过度使用某些技术(如xml,web webservice).业务规则 和逻辑混在一起 后果1:(1)按照2层经验去设计三层架构,一个不好的经验导致整个系统瘫痪(2)过度 ...
- 企业管理软件中的积分制管理软件添加成员操作介绍
在上一篇文中中建设完企业的组织架构,我们就要在积分制管理软件开始添加员工了,功能在[系统管理]→[员工管理]中可以实现对员工添加,下图为"某公司"的员工管理示例图. ...
- 软件中什么是接口?软件接口的具体定义
硬件接口都好理解:就是负责连接外部设备,传输数据的端口,比如usb接口. 软件的接口我看了好多文章的定义都不严谨和形象,所以在这说一下. 软件接口就是指程序中具体负责在不同模块之间传输或接受数据的并做 ...
- 编写html文件不能在哪个软件中编写,html用什么软件编写?使用Dreamweaver8编写一个html文件的方法--系统之家...
Dreamweaver8是一款集网页制作和管理网站于一身的所见即所得网页编辑器, 很多小伙最近再问Dreamweaver8怎么才能编写html文件?如何使用Dreamweaver8制作一个html文件 ...
- USB软件狗的设计及反破解技术
1 软件狗技术 近年来,软件狗技术在保护软件开发者利益.防止软件盗版方面起了很大作用.软件狗技术属于硬加密技术,它具有加密强度大.可靠性高等特点,已广泛应用于计算机软件保护.软件狗技术的发展经历了多次 ...
- 医疗机器人软件中的机器人协作技术:医疗机器人与机器人的结合
作者:禅与计算机程序设计艺术 "医疗机器人软件中的机器人协作技术:医疗机器人与机器人的结合" ========================="医疗机器人软件中的机器人 ...
- 医疗机器人软件中的机器人协作技术:机器人技术在医疗保健中的应用
作者:禅与计算机程序设计艺术 <64. "医疗机器人软件中的机器人协作技术:机器人技术在医疗保健中的应用"> 引言 医疗机器人软件中机器人协作技术是近年来备受关注的研究 ...
- flv 开源 修复_如何修复开源软件中的错误
flv 开源 修复 我们都在同一个团队中,并且都朝着使我们的开源软件变得更好的相同目标努力. 您的小贡献会产生重大影响. 开源软件的支持方式与运行方式同样重要. 如果选择构建令人敬畏的新功能,还是仔细 ...
最新文章
- 【遗传优化BP网络】基于自适应遗传算法的BP神经网络的股票预测MATLAB仿真
- stylus 在静态页面上的使用经验
- P1111 修复公路
- 建造样式与抽象工厂样式的区别
- LuaForUnity9:uLua的一个简单实例
- 对比select中的distinct影响
- zen3架构_AMD悄悄修订Zen3架构命名:这下不怕再混乱了
- 51单片机汇编程序,温度报警项目
- php代码写一串新年祝福,新年祝福QQ留言代码_把幸福装的满满的
- 删除华为C8650手机驱动的过程
- 什么样的固定资产管理系统才能满足企业需求
- Visio2013 补丁
- caffe学习之conver_imageset.bin的使用方法,caffe下图片转lmdb格式类型数据总结
- vlan的几种划分方式
- 12个scp命令传输文件的例子
- 如何用代码画出一幅好看的画
- attention 文字识别算法_支持40种语言的图片文字识别(OCR)项目
- 管道,Linux命令,Windows命令,cmd命令,tmux,vim,shell,bash,sh文件,bat文件
- mysql java驱动源码Connector/J编译
- 讨论java类的图书推荐