1.4 编写简易ShellCode弹窗

在前面的章节中相信读者已经学会了使用Metasploit工具生成自己的ShellCode代码片段了,本章将继续深入探索关于ShellCode的相关知识体系,ShellCode 通常是指一个原始的可执行代码的有效载荷,攻击者通常会使用这段代码来获得被攻陷系统上的交互Shell的访问权限,而现在用于描述一段自包含的独立的可执行代码片段。ShellCode代码的编写有多种方式,通常会优先使用汇编语言实现

1.6 编写双管道ShellCode后门

本文将介绍如何将`CMD`绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道、启动进程、传输数据等方面对这个功能进行详细讲解。此外,本文还将通过使用汇编语言一步步来实现这个可被注入的`ShellCode`后门,并以此提高代码通用性。最终,我们将通过一个实际的漏洞攻击场景来展示如何利用这个后门实现内存注入攻击。

1.6 编写双管道ShellCode

本文将介绍如何将`CMD`绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道、启动进程、传输数据等方面对这个功能进行详细讲解。此外,本文还将通过使用汇编语言一步步来实现这个可被注入的`ShellCode`后门,并以此提高代码通用性。最终,我们将通过一个实际的漏洞攻击场景来展示如何利用这个后门实现内存注入攻击。

4.5 MinHook 挂钩技术

MinHook是一个轻量级的Hooking库,可以在运行时劫持函数调用。它支持钩子API函数和普通函数,并且可以运行在32位和64位Windows操作系统上。其特点包括易于使用、高性能和低内存占用。MinHook使用纯汇编语言实现,在安装和卸载钩子时只需要短暂地锁定目标线程,因此对目标线程的影响非常小。

【玩转鲲鹏DevKit系列】何如快速迁移有源码应用

本文分享自华为云社区《【玩转鲲鹏DevKit系列】何如快速迁移有源码应用》,作者:华为云社区精选 。 源码(也称源程序)是程序员编写的计算机程序的文本形式,不同的编程语言有不同的语法和规则,常见类型包含解释型语言(JAVA/Python 等 )编译型语言(C/C++/GO等)、汇编语言等。程序员可以

XCode汇编调试

汇编调试的意义 了解常用的汇编指令和知识,可以知道经过编译器优化后,最终的代码调用,有可能和源码并不相同,如:设置faster,smallest 代码会更短,最终的汇编执行指令与源码不一样。 可以研究代码在二进制层面的执行流程是否和源码的流程一致,从二进制层面研究方法调用的传参,内部调用,方法返回值

【Android 逆向】【ARM汇编】 事前更新和事后更新

1. 事前更新,事后更新,不更新 不更新 ldr R4, [R1, R2, lsl #1] 相当于 R4 = *(R1 + R2 << 2^1) 之后 R1、R2的值时没有变化的 事前更新(! 的含义)(++i 的感觉) ldr R0, [R1, #4]! 加了感叹号 执行完这一句后 R1的值也是随

【Android 逆向】【ARM汇编】 堆栈

arm 四种栈 1 空栈 栈指针指向空位,每次存入时可以直接存入然后栈指针移动一格;而取出时需要先移动一格才能取出 2 满栈 栈指针指向栈中最后一格数据。每次存入时需要先移动栈指针一格再存入。取出时可以直接取出,然后再移动栈指针 3 增栈 栈指针移动时向地址增加的方向移动的栈 4 减栈 栈指针移动时

【Android 逆向】【ARM汇编】 函数的栈帧

1. 函数的调用约定 ARM32 参数1-4 放入r0-r3 剩下的入栈,函数返回值放入r0 ARM64 参数1-8 放入X0-X7 剩下的入栈,函数返回值放入X0 (浮点数是放入 Dn 或 Sn) 2. ARM 指令的 堆栈平衡 var_4 = -4 ; IDA 生成的变量信息,方便阅读用 STM

【Android 逆向】【ARM汇编】 全局资源重定位

资源重定位解释: 字符串反汇编代码解释: .rodata:00001E20 __exidx_end DCB "a + b = %d" ; DATA_XREF: main+28^o .rodata 所在段名 00001E20 偏移地址 __exidx_end IDA 给的一个字符串名称 DCB IDA

【Android 逆向】【ARM汇编】 arm64部分知识

arm64寄存器更多 X0-X30 SP CPSR PC 64位 W0-W30 32位 PC寄存器的值禁止修改 参数放在 X0-X7/W0-W7 结果放在 X0 函数返回 RET 相当于 bl lr Arm64 没有LR寄存器, lr用X30 栈底用X29 ARM64 取消了ldm/stm push

[转帖][译] 简明 x86 汇编指南

http://arthurchiao.art/blog/x86-asm-guide-zh/ 译者序 Translated from CS216, University of Virginia. 一份非常好的 x86 汇编教程,国外 CS 课程所用资料,篇幅简短,逻辑清晰,合适作为入 门参考。以原理为

[转帖][译] LLVM eBPF 汇编编程(2020)

http://arthurchiao.art/blog/ebpf-assembly-with-llvm-zh/ 译者序 本文翻译自 2020 年 Quentin Monnet 的一篇英文博客: eBPF assembly with LLVM。 Quentin Monnet 是 Cilium 开发者之

10.5 认识XEDParse汇编引擎

XEDParse 是一款开源的x86指令编码库,该库用于将MASM语法的汇编指令级转换为对等的机器码,并以XED格式输出,目前该库支持x86、x64平台下的汇编编码,XEDParse的特点是高效、准确、易于使用,它可以良好地处理各种类型的指令,从而更容易地确定一段程序的指令集。XEDParse库可以集成到许多不同的应用程序和工具中,因此被广泛应用于反汇编、逆向工程、漏洞分析和入侵检测等领域。XED

16位简单ASM题的记录——[HGAME 2022 week1]easyasm

第一次遇见16位,和纯看汇编的题目,记录一下 DIE 16位,IDA用32位或者64位都可以打开 IDA 主要汇编部分 seg003:0000 ; S U B R O U T I N E seg003:0000 seg003:0000 ; Attributes: noreturn seg003:00

09. C语言内嵌汇编代码

C语言函数内可以自定义一段汇编代码,在GCC编译器中使用 asm 或 __asm__ 关键词定义一段汇编代码,并可选添加volatile关键字,表示不要让编译器优化这段汇编代码。 内嵌汇编代码格式如下: __asm__ ( "汇编代码" :输出描述 :输入描述 :修改描述 ); 汇编代码部分 汇编代

驱动开发:内核LDE64引擎计算汇编长度

本章开始`LyShark`将介绍如何在内核中实现`InlineHook`挂钩这门技术,内核挂钩的第一步需要实现一个动态计算汇编指令长度的功能,该功能可以使用`LDE64`这个反汇编引擎,该引擎小巧简单可以直接在驱动中使用,LDE引擎是`BeaEngine`引擎的一部分,后来让`BeatriX`打包成了一个`ShellCode`代码,并可以通过`typedef`动态指针的方式直接调用功能,本章内容作

驱动开发:内核实现进程汇编与反汇编

在笔者上一篇文章`《驱动开发:内核MDL读写进程内存》`简单介绍了如何通过MDL映射的方式实现进程读写操作,本章将通过如上案例实现远程进程反汇编功能,此类功能也是ARK工具中最常见的功能之一,通常此类功能的实现分为两部分,内核部分只负责读写字节集,应用层部分则配合反汇编引擎对字节集进行解码,此处我们将运用`capstone`引擎实现这个功能。

玩好.NET高级调试,你也要会写点汇编

一:背景 1. 简介 .NET 高级调试要想玩的好,看懂汇编是基本功,但看懂汇编和能写点汇编又完全是两回事,所以有时候看的多,总手痒痒想写一点,在 Windows 平台上搭建汇编环境不是那么容易,大多还是用微软的 MASM + DosBox 搭一个 8086 的环境,这玩意距今快 50 年了。 在以

在WPF中使用着色器

概念类比 范畴 CPU GPU 二进制文件 .exe .cso / .ps 二进制指令 机器码 CSO(shader指令) 助记符 汇编 SL 高级语言 C# HLSL 高级语言文件 .cs .hlsl / .fx 高级语言编译器 csc.exe fxc.exe API .NET API Direc