- 2024-11-06基于PLC的自动化立体仓库控制设计【附数据】
- 2024-11-06基于PLC的智能温室环境参数手动/自动控制系统设计【附数据】
- 2024-10-17控制转移指令
SB老师根本讲不明白,选的教材也垃圾,很多重要的东西一笔带过,什么玩意儿啊这里面和伪指令有关的内容下一篇文章再叙述。我靠。知道吗!我翻遍了整本书关于call指令,它只有不到一页的内容!那么重要的指令CALL和RET,是C语言函数调用的根本,但这两条指令加起来只用了一页就讲完了。
- 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