修改PEB结构绕防火墙

Segmentation Fault错误原因总结 一、 什么是“Segmentation fault in Linux”所谓的段错误就是指访问的内存超过了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据 阅读详情
思路来自网上,代码用Pascal编写!
{
  功能 :通过PEB获取EXE路径演示(可以修改该路经,以绕过防火墙)
  Email:yuhj@zjjy.com
  Web  : http://yunuo.net
  by  :渗透
}

unit PEBtest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  _UNICODE_STRING = record
    Length: WORD{Ushort};
    MaximumLength: WORD;
    Buffer: PWideChar;
  end {_UNICODE_STRING};
  UNICODE_STRING = _UNICODE_STRING;
  PUNICODE_STRING = ^_UNICODE_STRING;

//PEB中的一个结构
type
  _PEB_LDR_DATA = record
    Length: ULONG;
    Initialized: BOOLEAN;
    SsHandle: pointer;//PVOID;
    InLoadOrderModuleList: LIST_ENTRY;
    InMemoryOrderModuleList: LIST_ENTRY;
    InInitializationOrderModuleList: LIST_ENTRY;
  end {_PEB_LDR_DATA};
  PEB_LDR_DATA = _PEB_LDR_DATA;
  PPEB_LDR_DATA = ^_PEB_LDR_DATA;


//模块结构 (72)
type
  _LDR_MODULE = record
    InLoadOrderModuleList: LIST_ENTRY;
    InMemoryOrderModuleList: LIST_ENTRY;
    InInitializationOrderModuleList: LIST_ENTRY;
    BaseAddress: pointer;
    EntryPoint:  pointer;
    SizeOfImage: ULONG;
    FullDllName: UNICODE_STRING;
    BaseDllName: UNICODE_STRING;
    Flags: ULONG;
    LoadCount: SmallInt;
    TlsIndex: SmallInt;
    HashTableEntry: LIST_ENTRY;
    TimeDateStamp: ULONG;
  end {_LDR_MODULE};
  LDR_MODULE = _LDR_MODULE;
  PLDR_MODULE = ^_LDR_MODULE;


type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
PEB :Pointer;
pmod:PLDR_MODULE;
pld :PPEB_LDR_DATA;

test:pointer;
begin
//获取PEB
asm
mov eax,fs:$30  //$18是TEB的地址 ,$30是PEB地址
mov PEB,eax
end;
Showmessage('当前进程的PEB地址='+IntToHex(Integer(peb),8));



PLD:=PPEB_LDR_DATA(Pointer(Integer(Peb)+$0C)^) ;    //PEB地址处开始$0C偏移处是一个PEB_LDR_DATA结构的指针
                                                    //该结构包含了程序所调用的模块
Pmod:=PLDR_MODULE(Pld.InLoadOrderModuleList.Flink); //获取第一个路径模块地址 (Exe本身)  .Flink.flink是第二个模块
Showmessage('程序入口点='+Inttohex(integer(pmod.EntryPoint),8));

ShowMessage(Pmod.FullDllName.Buffer);              //获取了EXE的路径,修改它可以穿透防火墙.例如修改为
                                                    //Pmod.FullDllName.Buffer:='C:/WINNT/system32/services.exe';
End;

end.
 
调试 Segmentation fault 问题 今天上班的时候,这个 segmentation fault 困扰了我半天,调试了半天就是不知道问题在哪,于是愤愤的下班了,晚饭都没吃好。不过饭后坐下来,仔细想了想,想到以下办法快速定位出错的语句。方法如下:         在介绍这个方法之前,先让我扯会蛋。首先先简单说一下这个 segmentation fault 产生的过程 (个人理解)。segmentation fault 一般是指内存的非 阅读详情

相关推荐

Python解决Segmentation Fault错误

在Python编程中,有时候你可能会遇到"Segmentation Fault"(分段错误)的错误。本文将向你介绍一些常见的原因和解决方法,帮助你解决Python中的Segmentation Fault错误。当你使用数组或者其他缓冲区来存储数据时,如果写入的数据超过了缓冲区的边界,就可能导致缓冲区溢出。当你的程序陷入无限递归时,栈空间可能会耗尽,从而导致Segmentation Fault错误。由于缓冲区的长度只有5,而我们却访问了超出范围的索引,这就导致了Segmentation Fault错误。

HackNebulaZ的博客 3380

关于进程PEB结构的修改实现

关于进程PEB结构前辈们给出了几篇比较详细的文章。例如:《JIURL玩玩Win2k进程线程篇 PEB》《陆麟 的 WIN2000 SP1的PEB结构》其中JIURL写的那篇是我到现在看到最详细的了。但是他们都没有给出具体的编程实现。所以在这里我就实现了一下PEB结构修改算是一个小小补充吧:)。下面是我的实现代码。关于原理我在里就不多说了,原理的东西可以看上面两个大牛的文章。代码如下:CODE:

eaglenet的专栏 4945

PEBFake:PEBFake(修改PEB 伪装当前进程路径、参数等)

Fake process imagepath and name BTW 当然你可以去修改其他进程的PEB信息,参考: 测试效果

C++ 修改指定进程 PEB 中路径和命令行信息实现进程伪装

背景 所谓的进程伪装,指的修改任意一个指定进程的信息,是它的信息在系统中的显示是另一个进程的信息,这样看来,指定的进程就像是被伪装的进程一样,因为进程信息相同,但实际上,它还是原来的进程,做着原来的进程操作。 函数介绍 NtQueryInformationProcess NTSTATUS WINAPI NtQueryInformationProcess( _In_ HANDLE ProcessHandle, // 要获取信息的进程的句柄。

LYSM 3424

无需UMAT:基于Abaqus内置模型实现形状记忆聚合物结构的热-力耦合仿真

本文详细介绍了如何利用Abaqus内置模型实现形状记忆聚合物(SMP)的热-力耦合仿真,无需编写复杂的UMAT子程序。通过广义Maxwell模型和Neo-Hookean模型的组合应用,结合完整的热-力耦合分析流程,帮助工程师高效模拟SMP的形状记忆行为。文章还提供了工程应用案例和常见问题解决方案,为相关领域的研究和设计提供实用指导。

weixin_34005090的博客 118

Android - 蓝牙开发

文章目录科普SIG类型制式编程Classic BluetoothBluetooth Low Energy蓝牙的UUID是什么?有什么用? 科普 https://zh.wikipedia.org/wiki/%E8%97%8D%E7%89%99 蓝牙(英语:Bluetooth),一种无线通讯技术标准,用来让固定与移动设备,在短距离间交换资料,以形成个人局域网(PAN)。其使用短波特高频(UHF)无线电波,经由 2.4 至 2.485 GHz 的 ISM(工业、科学、医疗)频段来进行通信。1994 年由电信商

qq_43323826的博客 1万+

修改PEB,断链隐藏模块成功

修改PEB,断链隐藏模块成功 继续实践之前的想法,就是断掉如下这个结构中的双向链表: typedef struct _LDR_MODULE { LIST_ENTRY InLoadOrderModuleList; LIST_ENTRY InMemoryOrderModuleList; LIST_ENTRY...

weixin_34319999的博客 484

Windows下用Python调用科大讯飞语音唤醒SDK的避坑指南(附完整代码)

本文详细介绍了在Windows平台使用Python调用科大讯飞语音唤醒SDK的全流程,包括环境配置、核心代码实现、典型问题解决方案及进阶开发技巧。通过完整的代码示例和避坑指南,帮助开发者快速集成语音唤醒功能,提升开发效率。

u0v1w2x3的博客 406

通过修改peb中的命令行参数字段实现进程创建的劫持

之前分析过的一些恶意软件中会使用这种方法来进行浏览器的主页劫持,其原理就是在进程创建回调函数中处理进程的创建消息。下面示例展示了如何修改命令行参数:以abcdefg.exe进程为例,其完整文件路径为:"C:\Users\1909\Desktop\abcdefg.exe";进修改后变为:"C:\Users\1909\Desktop\abcdefg.exe" -124,当然也可以变为:"C:\Users\1909\Desktop\abcd.exe" -124。

pureman_mega的博客 603

方法二:旋转机械动平衡精度计算

本文以实际案例为基础,系统阐述基于ISO 1940标准的动平衡精度G GG等级计算方法。通过角速度转换、许用剩余不平衡量e p e r e_{per}e per ​ 推导及G GG等级公式应用,结合惯性力偶矩、转子质量等参数,得出某转子系统的动平衡精度为G 40 G40G40。文中详细解析了公式原理与参数单位转换要点,并附完整ISO 1940动平衡等级参考表,为工程师提供从理论到实践的完整解决方案。研究结果表明,该方法可有效量化旋转机械的平衡精度,适用于风机、泵类等中低速设备的设计与调试,对提升设备运行

weixin_46153372的博客 922

从入门到实战:rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控

本文详细介绍了rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控方法。从Rootkit的危害性入手,讲解了rkhunter的安装、配置及实战应用,包括如何建立基准、优化定时任务方案以及智能告警处理。通过多级过滤脚本和系统级联动,帮助运维人员高效识别和应对Rootkit威胁,提升服务器安全性。

weixin_28715953的博客 242

Segmentation fault到底是何方妖孽

前两天和阿彬扯淡的时候(注意不是扯蛋),他说自己一个礼拜解决了三个Core dump,华丽丽之极,让我对其敬仰、膜拜之情如滔滔之江水,绵绵不绝。今天我也来谈一下Linux环境下开发时经常遇到的“Segmetation fault”的一点点个人看法,也算是抛砖引玉了。    (备注:我的glibc版本是2.12,GCC版本4.4.6,内核版本2.6.32-279)    Linux上开发时最恼火

wjlkoorey的专栏 1万+

Sigrity Power Tree如何进行直流压降仿真分析操作指导

Sigrity Power Tree模式可以用于前仿真,在没有layout文件的情况下对电源进行直流压降仿真分析,用于评估原理图设计以及器件选型是否合理。Model:设置为Equal Current,设置为等电源模型,意思该负载每个电源pin都是等电流的。Current:设置每个负载的电流,U30为3A,U3-U6各为1A。Nominal Current:设置能够承载的最大电流,设置为10A。Upper/ Lower Tol:设置为压降范围为5%Output Current:设置输出电流为10A。

weixin_54787054的博客 733

QT编程中遇到Segmentation Fault错误

Qt编写的界面程序中在没有点击连接服务的的按钮时,直接点击 发送 按钮,程序就会闪退,并且出现Segmentation Fault的提示, 经过排查,发现是因为QTcpSocket建立的对象放在了 连接服务端 按钮的槽函数里边,只有点了连接服务端 的按钮,对象才会建立,而直接点 发送 按钮时候,对象并没有建立,所以会出现错误(就是还没建立对象,你就调用了,所以不知道用的哪里的对象)。 v...

guozipi的博客 8252

DA14531-外设驱动篇-UART收发通信应用

宏定义注解CFG_PRINTF用户开启串口串口打印宏设置波特率选择115200。

hejinwu1314的博客 730

088、多摄像头跨镜目标追踪 ID 频繁切换?ReID 特征 + 轨迹关联 + 时间约束方案

文章摘要:本文针对多摄像头跨镜目标追踪中ID频繁切换的问题,提出了一种结合ReID特征、轨迹关联和时间约束的综合解决方案。作者分析了ID切换的三个主要原因:ReID特征不稳定、轨迹关联依赖最近邻匹配以及忽略时间约束。通过改进ReID特征提取(多层特征融合)、引入轨迹预测(卡尔曼滤波)和添加时间窗口约束,成功将ID切换率从35%降至3%以下。文章详细分享了实现细节和踩坑经验,为跨摄像头目标追踪提供了实用优化思路。

ai技术增长的博客 169

Segmentation Fault原因总结

转载链接:https://www.cnblogs.com/silence-hust/p/4487026.html 最近在项目上遇到了Segmentation Fault的错误,一直调试不出来是哪里出了问题,对于刚接触嵌入式的,也不知道该如何去调试一个项目,定位内存问题,纠结了好几天,好好整理下自己的思路。从头开始。   以下内容只为整理来自己使用的,大多来源于网络,感谢大家的分享:   ht...

学习为主,偶尔扯淡 18万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

用GDB调试Segmentation Fault错误

        调试Linux程序的时候,出现Segmentation Fault是最郁闷的事情了,程序代码量很大的时候,可能花很多时间都找不到出错原因。       这里介绍一种对你调试Segmentation Fault很有帮助的方法,可能能迅速帮助你找到出错的代码行。       这种方法需要用到Linux提供的core dump机制:当程序中出现内存操作错误时,会发生崩溃并产生

编码无悔 4万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

理解 Segmentation fault

开发的时候碰到如下的错误(PHP-FPM+apache),所以想好好理解下Segmentation fault. 参考了文章Segmentation fault到底是何方妖孽 维基百科的解释如下: 存储器区块错误(英语:Segmentation fault,经常被缩写为segfault),又译为存储器段错误,也称访问权限冲突(access violation),是一种程序错误。 它会...

bbbeoy的专栏 1810

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Page Fault vs Segmentation Fault:真正的区别与内核处理流程

所有 Segmentation Fault 都是 Page Fault,但不是所有 Page Fault 都是 Segmentation Fault。Page Fault 是机制,属于访问虚拟页时的一次页表异常Segmentation Fault 是后果,是非法 Page Fault 的处理结果对比点Page Fault是否是错误❌ 不一定✅ 是非法访问由谁处理内核页异常处理函数内核产生SIGSEGV信号是否可恢复✅ 可以(合法地址)❌ 不可恢复(直接终止进程)是否导致崩溃。

Interview_TC的博客 1153

segmentation fault (SIGSEGV) 定位方法

我们在Linux下进行程序开发,如果程序代码不严谨,会经常遇到 segmentation fault 报错,这种报错的结果就是程序会直接挂掉,很难在程序里一下子定位到问题代码。 原因 segmentation fault 就是经常说的内存泄露/溢出: 当一个进程执行一个无效的内存引用,或发生断错误时,会触发 SIGSEGV信号,内核默认的动作就是 终止该进程。 这个最常见的就是,比如我们使用了 非法指针: 1 #include <stdio.h> 2 #include <strin

猪哥的专栏 3万+

segmentation fault

segmentation fault     Segment fault之所以能够流行于世,是与Glibc库中基本所有的函数都默认型参指针为非空有着密切关系的。 来自:http://oss.lzu.edu.cn/blog/article.php?uid_7/tid_700.html#comment 转自:http://blog.sina.com

胖胖哒键盘敲击兽 1605

Segmentation fault到底怎么回事

转自:https://blog.youkuaiyun.com/good123_2014/article/details/48001327 (备注:我的glibc版本是2.12,GCC版本4.4.6,内核版本2.6.32-279) Linux上开发时最恼火的就是遇到“Segmetation Fault”错误。为什么这么说,很多人看到这个错误后心里第一反应是程序访问的非法的内存,导致其被操作系统强行终止。...

xcw_1987的博客 5597

php出现Segmentation fault

发现 Segmentation fault 今天安装了 xdebug、xhrpof等分析工具, 然后在运行相关命令时出现了 Segmentation fault(分段错误), 一般出现此错误大部分 内存越界指针错误引起的原因, 并非 php 代码本身原因. 出现此问题大部分因为底层拓展导致。 示例: php artisan xxx:xxxx output: Segmentation fault...

weixin_33698043的博客 3483

C++ Segmentation fault: 11 错误

typedef struct LNode{ //定义节点 int data; struct LNode *next; }LNode; void Print(LNode *L){ //打印节点 LNode *q = L; while(q != NULL){ q = q -> next; printf("%d ", q -> data); } p...

i_CodeBoy的博客 1万+
上一篇: Attacking Log Analysis Tools
下一篇: ZWSETSYSTEMINFORMATION过卡巴
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值