寻找0XCC软件断点
配合反汇编引擎效果出奇;
Here is what I see in hacker defense testing 0xCC software breakpoints
;I write it with FASM assembler
include 'win32ax.inc'
use32
entry start
section '.text' code readable executable
start:
push ebp
mov ebp,esp
mov eax,[fs:30h] ;peb
mov ebx, dword[eax+08h] ;Imagebase
mov dword [imagebassaddress],ebx
mov eax,[eax+0ch]
mov eax,[eax+0ch]
mov ebx, dword [eax+20h] ;sizeofimage
mov dword [sizeofimage],ebx
invoke CreateThread,NULL,NULL,fuckocc,NULL,0,NULL
fucknima:
mov ecx,10
loop fucknima
mov esp,ebp
pop ebp
invoke exit,NULL
fuckocc:
;Function implementation
push ebp
mov ebp,esp
fuckcc_loop:
mov al,0xcc
mov edi,dword [imagebaseaddress];get imagebaseaddress
mov ecx,dword [sizeofimage];get imagesize
repne scasb
sub edi,1;get address 0XCC=1BYTE so sub
mov dword [fuckcc],edi ;write 0xcc address to .data
;mov dword [edi],0x90
jmp fuckcc_loop
mov esp,ebp
pop ebp
section '.data' data readable writeable
imagebaseaddress dd 00
sizeofimage dd 00
fuckcc dd 00
section '.idata' import data readable
library kernel,'KERNEL32.DLL'
import kernel,CreateThread,'CreateThread',\
exit,'ExitProcess'
寻找0XCC软件断点相关推荐
- 调试器工作原理--CPU软件断点/硬件断点/单步执行标识
断点和单步执行是两个经常使用的调试功能,也是调试器的核心功能. 断点是调试器的最常用技术之一.其基本思想是在某一个位置设置一个陷阱,当CPU执行到此位置时,中断到调试器中,让调试者分析和调试,之后恢复 ...
- 嵌入式软件调试之软件断点
关注.星标公众号,直达精彩内容 来源:CSDN | maomao171314 整理:技术让梦想更伟大 | 李肖遥 软件断点 INT 3 指令,即通常所说的"软件断点",一条X86系 ...
- 软件调试学习笔记(五)—— 软件断点内存断点
软件调试学习笔记(五)-- 软件断点&内存断点 调试的本质 软件断点 软件断点的执行流程 分析INT 3执行流程 实验:处理软件断点 内存断点 内存断点的执行流程 实验:处理内存断点 调试的本 ...
- 硬件断点和软件断点(整理)
文章目录 1. 断点的类型 2. 为什么要分软件断点和硬件断点呢? 3. GDB中如何设置软/硬件断点 1. 断点的类型 软件断点:由非法指令异常实现,适用于运行于内存中的程序(软件实现).以x86为 ...
- VC++设置软件断点和“XXX已停止工作“对话框
根据资料,VC++中可以用三种方法设置软件断点: 1 使用汇编指令(注:x64 c++不支持嵌入汇编) _asm int 3 2 编译器提供的方法 __debugbreak(); 3 使用window ...
- 硬件断点和软件断点的区别
硬断点--break point 软断点--assert 简单的解释: 硬件断点:硬断点需要硬件寄存器提供支持,断点的数目受Embedded ICE中的Watchpoint数目的限制,但是可以在任何地 ...
- 单片机编程软件很简单(14),Keil单片机编程软件断点设置
单片机编程软件十分常用,对于单片机编程软件,小编于往期文章中做过诸多介绍.本文对于单片机编程软件的介绍基于Keil,主要内容在于介绍该单片机编程软件的在线汇编功能以及断点设置.如果你对Keil单片机编 ...
- GDB再学习(6):断点调试之软件断点
系列文章目录 GDB再学习(1):前言 GDB再学习(2):编译 GDB再学习(3):GDB的启动和运行 GDB再学习(4):程序准备 GDB再学习(5):常用指令介绍 GDB再学习(5.1):常用指 ...
- 如何寻找省级软件产业主管部门认可的软件检测机构出具报告
对于很对软件企业想要自己的软件上线.验收.登记等甲方都明确的需要省级软件产业主管部门认可的软件检测机构出具的软件测试报告,那么如何寻找软件检测机构,怎么辨别是否具备资质呢,下面一航软件测评的小编来告诉 ...
最新文章
- [android] Serializable 和 Parcelable 区别
- matlab在电力行业中的仿真技术-MATLAB基于EKF算法估计电动汽车蓄电池的SOC
- Matlab中newff函数使用方法和搭建BP神经网络的方法
- 五大常用经典算法—回溯算法
- SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
- 理想化的DevOps团队里只需要有Dev就够了?
- 炸裂!谷歌这波操作,预警了什么?
- 可能是最强大的【CSS】动画库
- caffe linux 教程,Caffe 深度学习入门教程 - 安装配置Ubuntu14.04+CUDA7.5+Caffe+cuDNN_Linux教程_Linux公社-Linux系统门户网站...
- 服务器无法拖动文件复制文件,​IT服务器运维:艾锑人为您整理Win10系统下移动、复制、删除文件需要管理员权限的解决方法...
- 清远机器人编程_「新时代好少年」清远学生研发“灭火装置”获实用新型专利...
- java class教程_深入理解Java Class文件格式(七)
- 蚂蚁金服副总裁刘伟光:浅析银行数字化转型之二「打造金融敏捷中心」
- mingw32位下载以及windows下安装
- Gradle基础:7:Property使用方式
- pyqt显示圆形图片
- ROS错误之RLException: Ubable to launch [xx-1]].
- STM32f107 CAN滤波器设置
- JVM学习教程,带你轻松掌握Java虚拟机,吊打面试官
- 计算机网络重要知识点