玩一玩 Ubuntu 下的 VSCode 编程

一:背景 1. 讲故事 今天是五一的最后一天,想着长期都在 Windows 平台上做开发,准备今天换到 Ubuntu 系统上体验下,主要是想学习下 AT&T 风格的汇编,这里 Visual Studio 肯定是装不了了,还得上 VSCode,刚好前几天买了一个小工控机,这里简单记录下 零到一 的过程

[转帖]a.out、coff、elf三种文件格式

补充:a.out早期并不是elf格式的,而是unix下另一种可执行格式,新的a.out是本文讨论了 UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and link editor output 汇编器和链接编辑器的输出)、COFF(Common Object F

[转帖]Java和Scala的前世今生

第一部分:Java 计算机语言介绍 第一代语言:机器语言。指令以二进制代码形式存在 第二代语言:汇编语言。使用助记符表示一条机器指令 第三代语言:高级语言 C、Pascal、Fortran面向过程的语言 C++面向过程/面向对象 Java跨平台的纯面向对象的语言 .NET跨语言的平台 Python、

操作系统开发:BIOS/MBR基础与调试

这里在实验之前需要下载 Bochs-win32-2.6.11 作者使用的是Linux版本的,在Linux写代码不太舒服,所以最好在Windows上做实验,下载好虚拟机以后还需要下载Nasm汇编器,以及GCC编译器,为了能够使用DD命令实现磁盘拷贝,这里你可以安装windows 10 下面的子系统Ub

【转帖】Linux开发工具 — readelf、objdump、hexdump

本博文的主要内容是:1)readelf工具查看ELF文件的信息;2)hexdump工具查看这块内存;3)objdump工具对文件进行反汇编。 前一段时间对Linux不熟,所以很多命令不知道。学习C时候需要偶尔看一下汇编用来理解。我喜欢用问题的形式来学习和总结。 1. 如何看一个程序代码变量的存储布局

程序的机器级表示(CSAPP Chapter 3,COD Chapter 2)

程序的机器级表示(CSAPP Chapter 3,COD Chapter 2) 0. 序言 我们首先回顾计算机执行机器代码的过程和目的。其目的在于处理数据、管理内存、读写数据、通信......。其过程大概可以这样描述:编译器以汇编代码的形式输出,它是机器代码的文本表示,给出程序中的每一条指令。然后

4.3 x64dbg 搜索内存可利用指令

发现漏洞的第一步则是需要寻找到可利用的反汇编指令片段,在某些时候远程缓冲区溢出需要通过类似于`jmp esp`等特定的反汇编指令实现跳转功能,并以此来执行布置好的`ShellCode`恶意代码片段,`LyScript`插件则可以很好的完成对当前进程内存中特定函数的检索工作。在远程缓冲区溢出攻击中,攻击者也可以利用汇编指令`jmp esp`来实现对攻击代码的执行。该指令允许攻击者跳转到堆栈中的任意位

4.5 x64dbg 探索钩子劫持技术

钩子劫持技术是计算机编程中的一种技术,它们可以让开发者拦截系统函数或应用程序函数的调用,并在函数调用前或调用后执行自定义代码,钩子劫持技术通常用于病毒和恶意软件,也可以让开发者扩展或修改系统函数的功能,从而提高软件的性能和增加新功能。钩子劫持技术的实现一般需要在对端内存中通过`create_alloc()`函数准备一块空间,并通过`assemble_write_memory()`函数,将一段汇编代

10.4 认识Capstone反汇编引擎

Capstone 是一款开源的反汇编框架,目前该引擎支持的CPU架构包括x86、x64、ARM、MIPS、POWERPC、SPARC等,Capstone 的特点是快速、轻量级、易于使用,它可以良好地处理各种类型的指令,支持将指令转换成AT&T汇编语法或Intel汇编语法等多种格式。Capstone的...

[转帖]-O1,-O2,-O3编译优化知多少

1.从.c文件到可执行文件,其间经历了几步? 高级语言是偏向人,按照人的思维方式设计的,机器对这些可是莫名奇妙,不知所谓。那从高级语言是如何过渡到机器语言的呢?这可是一个漫长的旅途呀! 其中,得经历这样的历程:C源程序->编译预处理->编译->汇编程序->链接程序->可执行文件 1.预处理 读取c源

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等)、汇编语言等。程序员可以

[转帖]实用工具汇总

https://www.bilibili.com/read/cv10988196?spm_id_from=333.999.0.0 Cockpit: Linux 服务器的 Web 控制台 对于Ubuntu系统: sudo apt-get install cockpit 其他Linux发行版的安装方法

[转帖]JVM调优汇总(JDK1.8)

JVM调优汇总 1、根据实际情况选择合适垃圾收集器 堆内存4G一下可以用parallel,4-8G可以用ParNew + CMS,8G以上可以用G1,几百级以上用ZGC。 2、jvm参数的初始值和最大值设置一样,避免扩容时消耗性能。 ‐Xms3072M ‐Xmx3072M ‐XX:Metaspace

SQL查询语句汇总

SQL查询语句汇总 students表 idclass_idnamegenderscore 1 1 小明 M 90 2 1 小红 F 95 class表 idname 1 一班 2 二班 3 三班 4 四班 1.基本查询 -- 查询students表的所有数据 SELECT * FROM stude

分布式事务解决方案汇总

2阶段(2PC)提交方案: 实现原理:基于XA规范搞的一套分布式事务的理论,也可以叫做一套规范,或者是协议。 (1)准备阶段(Prepare phase):事务管理器给每个参与者发送prepare消息,每个数据库参与者在本地执行事务,并写本地的Undo/Redo,此时事务没有提交。 (2)提交阶段(

MapStruct - 注解汇总

@Mapper @Mapper 将接口或抽象类标记为映射器,并自动生成映射实现类代码。 public @interface Mapper { // 引入其他其他映射器 Class[] uses() default {}; // 将类import 到生成的实现类中 // 可以使用 {@link