JMP
  • 2024-09-11通过 Dll 注入实现应用层跨进程 inline 挂钩
    一、导入Detours库Detours是微软提供的一个开发库,可以简单、高效且稳定的实现APIhook。Detours是一个可以在x86、x64和IA64平台上挂钩任意win32函数的程序开发库,它通过在需要进行挂钩的目标函数头部重写内存代码而达到接管函数控制权,进而实现自己功能的目的。除此之
  • 2024-04-308086 汇编学习 Part 5
    流程转移背景一般情况下指令是顺序地逐条执行的,而在实际中,常需要改变程序的执行流程。转移指令可以控制CPU执行内存中某处代码的指令。可以修改IP,或同时修改CS和IP的指令。分类按转移行为分类段内转移:只修改IP(例如JMPAX)段间转移:同时修改CS和IP(例
  • 2024-04-19hook初识之inline hook
    文章首发阿里云先知社区:https://xz.aliyun.com/t/14033什么是hookhook翻译过来就是钩子,它用于拦截并改变某个事件或操作的行为,比如我们大家在写shellcodeloader时,直接使用申请内存,copy内存等高危操作可能会报毒,然后尝试更换冷门的api或者直接使用内核函数时,成功绕过杀软
  • 2024-04-07Apr.7.2024小结——汇编中jmp和call的用法
    今天终于跑起来了自己OS的mbr,还是很激动人心的。学习了16位实模式下jmp和call的各种用法,来总结一下:call(near)0xabcd相对近调用后面的地址是相对的-32768~32767call[addr]间接绝对近调用地址为绝对,但是是在某个寄存器或内存中call(far)段基址:偏移直接绝对远调用跨
  • 2024-03-12今日总结
    3.1选择子集选择我们关注的子集,将不需要的子集删除。JMP操作:查询数据时只选择关注的列即可。JMP选择子集EXCEL操作:将不需要的列删除即可。EXCEL选择子集3.2字段(列名)重命名若数据集中出现同样列名称,或含义相同的两个列名,为避免干扰分析结果则需要针对某一个数据列的列
  • 2024-03-03P9185 [USACO23OPEN] Rotate and Shift B 题解
    首先,我们很容易就能得出一个显而易见的结论:若令原数组为\(order\),\(K\)个活跃位置分别为\(A_1,A_2,...,A_K\),则\[order_{A_1}\toorder_{A_2},order_{A_2}\toorder_{A_3},...,order_{A_K}\toorder_{A_1}\]的操作就等价于将\(order\)数组顺时针旋转\(x\)次,即\[orde
  • 2024-03-02MinHook 项目学习笔记
    ​​ MinHook是一个常用的InlineHook库,学习完整个项目后对Hook技术会有更深的认识。项目路径:TsudaKageyu/minhook:TheMinimalisticx86/x64APIHookingLibraryforWindows(github.com)1.基本原理1)获取原函数地址2)将原函数的前五个字节改为跳转指令跳转到FakeFunc
  • 2023-11-19汇编-JMP无条件转移
    JMP指令无条件跳转到目的地址,该地址用代码标号来标识,并被汇编器转换为偏移量。语法如下所示:        
  • 2023-11-04chapter7-chapter9
    目录chapter7:更灵活的定位内存地址的方法1.and和or指令2.大小写字母的转换问题3.[bx+idata]4.SI和DI[bx+si]和[bx+di]几种定位内存地址的方法chapter8:数据处理的两个基本问题1.两个基本问题2.bx,si,di,bp3.汇编语言中数据位置的表达4.寻址方式5.div指令(除法指令)6.伪指令dd7.dup操
  • 2023-11-03VS宏相关笔记
    errorC2601:“DllProxyInit”:本地函数定义是非法的VS2015代码中用到了宏#defineDLL_API_Fun(fun) DLL_API__declspec(naked) void* _##fun() \ { \ __asmjmp__##fun; \ } 其中用到了__asm,加了结束分号,加分号是以前代码习惯,旧版本VS的缩进问题,在
  • 2023-08-161-2分支程序设计实验
    EXTRNInitKeyDisplay:NEAR,Display8:NEAR,GetKeyB:NEAR_STACKSEGMENTSTACKDW100DUP(?)_STACKENDS_DATASEGMENTWORDPUBLIC'DATA'BUFFERDB8DUP(?)DATAENDSCODESEGMENTSTARTPROCNEARASSUMECS:CODE,DS:_DATA,SS:_STACKMOVAX,_DATAMOV
  • 2023-08-15call与retn指令
    一.call指令将call指令下一跳指令压入栈中jmp跳转到call指令的地址二.retn指令pop指令将栈顶元素弹出存储jmp跳转到该栈顶元素地址retnn;表示再前两步操作的基础上加上esp+=n,用于实现堆栈平衡,这里一般的平衡的是压入栈的参数。需要关注的是retn指令所在的位置一定
  • 2023-08-08JAVA 问题记录
     OOM(内存溢出) 先查看java进程pidjps使用jmp把内存导出查看那些对象内存占用比较高jmp-histo<pid>>/histo.txt在可以看堆内存使用情况jmp-heap<pid>>/heap.txt 
  • 2023-07-28使用Delphi编写DLL劫持内存补丁
    在有些破解程序时,不能暴力修改程序,修改后,程序就不能正常运行,因为很多程序启动时有自我的校验,但是当程序加载到内存后,在内存中修改相应的地方就可以达到破解的效果。那么怎样在不破坏程序的前提下,达到修改程序呢?当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址
  • 2023-07-25汇编-jmp无条件转移指令
             
  • 2023-07-16# 实验八,九
    实验八分析下面的程序,在运行前思考:这个程序可以正确返回吗?运行后再思考:为什么是这种结果?通过这个程序加深对相关内容的理解。assumecs:codesgcodesgsegment movax,4c00h int21hstart: movax,0s: nop nop movdi,offsets movsi,offsets2
  • 2023-05-25漏洞
    jmpesp跳板可以适应shellcode的内存地址动态的变化windows中系统dll,比如kernel32,user32基本上在每一个进程中的地址都相同,但下次开机就不同了所以我们在user32中找一个jmpesp指令,jmpesp对应的指令是0xFFE4OD有一个插件,OllyUni.dll可以快速找到jmpesp这一系列的指令 xo
  • 2023-04-21加密与解密x64逆向——变量、if和switch、循环语句
    数据结构主要是对局部变量,全局变量,数组等的识别。1.局部变量局部变量是函数内定义的变量,存放的内存区域称之为栈区。生命周期就是从函数进入到返回释放。函数在入口处申请了预留栈空间和局部变量空间,也就是subrsp,30h。局部变量空间在高地址。在应用程序被编译成release版本
  • 2023-04-15转移指令的原理
    转移指令有如下:1.无条件转移指令(如:jmp)2.条件转移指令3.循环指令(如:loop)4.过程5.中断操作符offset(取得标号的偏移地址)jmp指令-->可以只修改IP,也可以同时修改CS和IP(实际是根据位移来转移的指令)怎么计算位移位移:该jmp要跳转到的标号内的第一个指令的偏移地址减去(-
  • 2023-04-1001 | C语言异常处理(jmp_buf、setjmp、longjmp)
    首先说明,C语言中的异常处理主要还是错误码的思路.其次,C语言中是有返回两次的函数的,比如说fork()函数在C语言中是没有trycatch块的,但并不代表没有异常处理。接下来我们简单明确三个概念,最后来一个简单的小例子。1.三个概念使用一个jmp_buf的类型变量来充当异常
  • 2023-04-04buuctf.pwn.jarvisoj_level2
    这个题目,是缓冲区溢出检测一下Nocanaryfound:可以看出没有栈保护NOPIE:没有地址随机化然后分析题目这一次我在网上看到了不同的解法,但是基本思路是一致的主要看一下这个溢出ssize_tvulnerable_function(){charbuf[136];//[esp+0h][ebp-88h]BYREFsys
  • 2023-03-05汇编指令学习(JMP、JE、JS、JP,JO,J*b)
    一、JMP无条件跳转不用看标志位,jmp后面跟一个内存地址,直接跳转到该地址jmp0x0046B994二、JE(JZ)条件跳转当ZF标致为1的时候发生跳转,为0的时候不跳转,可以双击标志位,进行判断je
  • 2023-02-17指令系统(三)
    目录寻址方式(二)转移地址的寻址方式程序的执行顺序由CS和IP的内容决定。正常情况下,CPU每执行一条指令,IP的内容自动加1,使之指向下一条指令。当遇到转移指令时,通过自动
  • 2023-02-03[1] 以逆向的角度来看流程控制语句——if
    [1]以逆向的角度来看流程控制语句——if1.if语句(单分支)​ if语句转换的条件跳转指令与if语句的判断结果是相反的,因为C语言是根据代码行的位置决定编译后二进制代码地
  • 2023-01-14【加密与解密】第四章③
    数据结构主要是对局部变量,全局变量,数组等的识别。1.局部变量局部变量是函数内定义的变量,存放的内存区域称之为栈区。生命周期就是从函数进入到返回释放。函数在入口