加壳原理与简单实现加壳

【QT】打包加壳成一个exe文件 (b)点击“允许执行”后,且如果文件中没有语法错误或者相关路径错误的话,桌面文件会自动更新为带图标的demo工具,如下图,但是建议最好检查下属性中“执行”是否选中为“允许执行文件”;(2)优先选择第一个,可直接命令执行,但是不论是源码还是命令行,仅能在ubuntu18.04以下运行,像ubuntu20.04编译运行时会提示系统版本太新的错误;(a)修改权限,不能设置权限为0777,可以设置0755,否则下图中鼠标右键菜单中不会出现“允许启动”设置,相当于执行对文件设置可信任状态,点击“允许执行”; 阅读详情
 

{*****************************************************************
AddShell()源自于前一段时间有写的addsection()新增区段代码,
在增加区段代码的基础上,追加了
1.修改启动入口点位置
2.增加一段壳头xor $50的代码function AttachStart-function AttachEnd
这一段代码是先填充,再被修改成合适原EXE的壳头
3.修改原启动代码入口点所在区段的段属性可写并进行xor $50运算加密


不支持addshell()处理已经过addshell的exe
*****************************************************************}

unit Unit1;

interface

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

type
TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
private
    { Private declarations }
public
    { Public declarations }
end;

var
Form1             : TForm1;

implementation

{$R *.dfm}
function AttachStart: dword; stdcall;   //我们定义的待填充数据
asm
       pushfd
       pushad
       mov eax,$12345678      //将会被自动计算并修改为加密初始地址
       mov ebx,$1234          //将会被自动计算并修改为加密大小
       mov ecx,0
       @AA:
       xor byte ptr[eax],$50
       inc eax
       inc ecx
       cmp ecx,ebx
       jbe @aa
       popad
       popfd
       push $12345678        //将会被自动计算并修改为原OEP
       ret
end;

function AttachEnd: dword; stdcall;
begin
end;

{-------------------------增加区块并实现简易加壳--------------------------------}
procedure AddShell(lFileName: string; lBackup: boolean); //打开exe文件,是否备份
var
hFile             : THandle;          //文件句柄
ImageDosHeader    : IMAGE_DOS_HEADER; //DOS部首
ImageNtHeaders    : IMAGE_NT_HEADERS; //映象头
ImageSectionHeader: IMAGE_SECTION_HEADER; //块表
lPointerToRawData : dword;            //指向文件中的偏移
lVirtualAddress   : dword;&nb

C# [程序加壳] 运行内嵌程序 - 调用嵌入资源的EXE文件运行 C# [程序加壳] 运行内嵌程序 - 调用嵌入资源的EXE文件运行 本文介绍如何在程序中内嵌其它exe程序文件并调取运行,修正了网上写的代码。 (主要修正了资源文件的读取、EXE文件中Main(string [])函数参数传递代码) 1.先建立一个测试项目test,编译输出test.exe 2.再建立一个加壳项目AppPacker 3.在项目AppPacker中找到 “properties\resources.resx”,双击Resources.resx打开,在里面添加test.exe文件为本项目的资源: 阅读详情

相关推荐

加壳原理及实现流程与导入表结构分析(C++源代码)

参考文章: 《加密与解密》 https://blog.youkuaiyun.com/qq_31507523/article/details/89438410

Tokameine的博客 2145

加固与脱壳05 - 壳类型识别

​以前一些老旧的技术就不介绍了,比如,动态加载、内存不落地加载的方式。

a5right的博客 1349

软件加壳的原理及实现

加壳的实现我是个初学者,所知有限,难免会有错误,如果有人发现了错误,还请指正 先大致说一下加壳的原理,即在原PE文件(后面称之为宿主文件)上加一个新的区段(也就是壳),然后从这个新的区段上开始运行;也就算是成功的加上了壳;下面我们就说一下具体的实现。 这个工程有两个项目,一个用来生成壳的Win32项目(dll类型),另一个是实现加壳的MFC项目; 加壳的项目界面是用MFC实现的,除了原有的类外

woshigeshusheng的博客 3万+

Apk源码的加固(加壳)原理解析和实现

好久没写博客了,要深刻检讨下!前言: 在Android中没有经过加密的Apk给人的感觉就是在裸奔,通过apktool,dex2jar,AndroidKill等各式各样的反编译工具就可以轻松的获取其smail代码,如这个叫SourceProject的helloworld程序被apktool反编译后,对于懂smail语法的逆向工程师来说就一览无余了。破解与反破解是相对的,所以我们尽可能的给自己的Apk

Simon_Hu 8528

加壳实现

学习了PE文件结构一段时间了,于是想写一个简单的壳更好的掌握所学的内容。 一、加壳思路 加壳软件一般要编写两部分内容(加壳软件和壳软件),目的是把壳软件附加到要保护的可执行文件里面实现一些目的。目前而言壳软件用dll来实现是比较简单的方式,当然也可以用其他的方式。 加壳软件:(只增加一个段的实现方式) 1>加载要被加壳的文件,并分析其PE结构。 2>加载DLL到内存,并分析其PE结构,得

BlackStone的博客 3812

Reverse | 使用UPX对软件进行加壳

1、相关知识: (1)加壳 加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段。加壳过的程序可以直接运行,但是不能查看源代码.要经过脱壳才可以查看源代码。 加壳的程序经常想尽办法阻止对程序的反汇编分析或者动态分析,以达到保护源码的目的。这种技术也常用来保护软件版权,防止被软件破解。 (2)加壳软件 加壳软件可分为两类:一类是压缩,一类是保护。压缩...

qq_42646885的博客 7249

简单的手工加壳篇

1.去掉随机基址 修改完后记得保存。 2.记录OEP及添加新区段的信息 OEP:00011339(RVA) EP:00020000(RVA) 区段名称:. Pack 虚拟 / 物理大小(区段的大小):500 文件偏移:00009600 3.给. Pack区段添加数据 根据文件偏移,找到区段在文件中的位置。 快捷键:Ctrl + G (00009600) 再根据区段的大小(刚才我们设置了区...

Winter_Zero的博客 676

《逆向工程核心原理》学习笔记7 UPack加壳

《逆向工程核心原理》学习笔记7 UPack加壳 (好久没更了orz) UPack是一款用于给软件加壳的程序,通过对PE头的变形和压缩,达到不让别人识别文件作用的功能。因此骇客经常使用这种加壳程序对他们所编写的病毒进行包装。有些杀毒软件会不加分辨的直接把所有用UPack压缩的文件全部识别为病毒。(本身这个软件没有恶意) 首先要下载UPack,下载链接在这 https://download.csdn....

EloflyS的博客 1607

xposed 04 - 方法调用与加壳app处理

上面说的这个方法还是比较通用的。只要找准classLoader,对加壳app的hook也不难。

a5right的博客 1998

【学习笔记】从eXeScope到汇编与反汇编、加壳与脱壳的理解

        由于博主需要对.exe文件的内部程序进行修改,因此今天面向百度编程学习了如何修改.exe文件。通过百度,笔者发现了eXeScope这款神器,并基于此神器对“汇编与反汇编”、“壳”的概念有了一定程度的了解。特写作此文,记录下自身的收获。 目录汇编Assembly反汇编DisassemblyeXeScope软件介绍:壳壳的概念壳的种类加壳和脱壳技术加壳的解压原理    &nbsp.

Hakutaku白泽 2957

Android app加壳原理分析及壳程序编写

Android应用程序加壳是一种保护机制,通过在原始APK文件的外部添加额外的层(壳),使得攻击者更难分析、修改或破解应用程序。下面是一个整体加载dex文件的壳程序,它会解密并加载解密后的dex文件,壳程序的实现在native层,增加了静态分析的难度。核心点在于壳程序会先于被保护的代码运行,它负责检查运行环境是否安全、解密并执行我们的代码。newDexClassLoader 创建新的类加载器,加载已解密的dex文件。壳程序启动入口,它负责解密并加载原代码dex文件,并替换当前的类加载器。

vs2008ASPNET的专栏 3671

【Android 逆向】加壳技术实战解析(VMP 与 Dex2C 混合加壳案例)

本文深入解析Android应用安全中的混合加壳技术,重点剖析VMP与Dex2C的组合应用。通过实战案例,详细介绍了如何识别、分析并逆向这类高强度的保护方案,为逆向工程师提供了从工具使用到实战技巧的完整应对策略。

weixin_29310605的博客 1618

Android APK加壳技术实战:从原理到DEX动态加载实现

在移动应用安全领域,代码保护是防止逆向工程和恶意分析的基础技术。其核心原理是通过混淆、加密等手段,增加攻击者分析源码的难度,从而保护知识产权和敏感数据。从技术价值看,有效的代码保护能显著提升应用的安全基线,对抗静态反编译和动态调试。常见的应用场景包括金融支付、游戏逻辑、核心算法以及包含敏感接口的各类App。本文聚焦于Android平台的APK加壳技术,深入探讨了DEX动态加载的实现方案,并详细解析了如何通过内存解密和类加载器注入来保护核心代码,其中涉及对DexClassLoader的反射调用和dexElem

weixin_28731223的博客 328

加壳与脱壳的原理

加壳一般是指保护程序资源的方法. 脱壳一般是指除掉程序的保护,用来修改程序资源. 病毒加壳技术与脱壳杀毒方法 : 壳是什么?脱壳又是什么?这是很多经常感到迷惑和经常提出的问题,其实这个问题一点也不幼稚。当你想听说脱壳这个名词并试着去了解的时候,说明你已经在各个安全站点很有了一段日子了。下面,我们进入“壳”的世 界吧。 一、金蝉脱壳的故事 我先想讲个故事吧。那就是金蝉脱壳。金蝉脱壳属于三十六计中

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 2万+

windows 加壳工具代码实现05 - 加壳代码整体思路逻辑总结

这篇文章介绍了加壳程序的基本概念和工作原理。加壳程序通过将可执行文件进行压缩或加密,并附加壳代码,使得原始程序运行时先执行壳代码完成解密等操作后再跳回原始程序。文章重点分析了GrkPro加壳器与Stub壳代码项目的协作关系,详细描述了加壳过程的两阶段模型:加壳阶段(加密代码、注入壳代码、修改入口点)和运行阶段(壳代码执行、解密、跳回原程序)。核心调度函数Pack()的11个步骤展示了完整的加壳流程,包括初始化PE结构、异或加密、加载壳模板DLL、填充参数、提取壳代码段、修复重定位等关键操作。文章最后还说明了

盾悟 6757

qt程序中嵌入第三方exe外壳实例程序

嵌入程序以一个widget的形式加入,可以随窗口大小适应,嵌入程序中也实现了进程间通信形式,关于内部的第三方程序中的通信也是以相同的道理编写,这里没有包含,有疑问欢迎下方留言

abaqus2matlab的安装与使用:如何用matlab提取abaqus的odb结果

官网abaqus2matlab官网地址matlab社区地址matlab社区地址在这里可以看到.m文件的源码论文:Abaqus2Matlab: A suitable tool for finite element post-processingabaqus2matlab可以处理.inp、.fil、.odb三种类型的文件。.inp文件:处理功能就在于只是单纯的输出inp文件,由于我自己写了自己的函数,不需要用到这个功能。

qianxin1234的博客 2019

手把手教你解决Realsense D455在ROS下IMU数据不输出的问题(附固件降级指南)

本文详细解析了Realsense D455在ROS环境下IMU数据不输出的问题,提供了固件降级和ROS配置的完整解决方案。通过版本兼容性分析和实战操作指南,帮助开发者快速恢复IMU数据流,优化机器人开发体验。

weixin_42531494的博客 372

多智能体强化学习中的Trust Region技术:HATRPO与HAPPO深度解析

本文深度解析多智能体强化学习中的Trust Region技术,重点探讨HATRPO(异质智能体信任区域策略优化)与HAPPO(异质智能体近端策略优化)两种先进算法。通过数学架构与工程实现细节,揭示其在解决联合策略空间爆炸、信用分配等挑战中的优势,并分享实际部署中的优化技巧与前沿进展。

weixin_29072299的博客 192

python 编程 安卓脚本_详解基于Android的Appium+Python自动化脚本编写

1.AppiumAppium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows应用程序。通过Appium,我们可以模拟点击和屏幕的滑动,可以获取元素的id和classname,还可以根据操作生成相关的脚本代码。下面开始Appium的配置。appPackage和APPActivity的获取任意下载一个app解压...

weixin_39523625的博客 2931

康耐视VisionPro必学技巧:用CogCopyRegionTool实现图像拼接与局部替换

本文深入探讨了康耐视VisionPro中CogCopyRegionTool的高级应用,重点解析如何利用其精确的像素级复制与坐标对齐功能,实现工业视觉中的多相机图像拼接与印刷品局部替换。通过实战案例与代码示例,详细指导了从坐标标定、画布创建到顺序复制的完整流程,并分享了性能优化与常见避坑指南,帮助工程师高效解决复杂图像合成难题。

weixin_29204121的博客 500

TAS5805MPWPR实战:数字音频功放从选型到量产全流程指南

数字音频功放将I2S数字信号直接转为PWM驱动扬声器,省去传统DAC与模拟运放链路,在高保真、低BOM与紧凑PCB之间找到平衡。其核心在于内置可编程DSP,支持多段PEQ、DRC等数字处理,通过I2C配置即可完成调音,而不占用主控算力。这类方案广泛应用于蓝牙音箱、Soundbar、智能音频模组等产品,但实际落地时常遇到I2C通信不稳定、EQ未生效、底噪超标、DC检测误触发等工程问题。从电源布局、LC滤波参数到PurePath Console工具链的使用,再到量产固件加载与故障排查,都需要系统化方法论支撑。本

weixin_29164843的博客 220

【26美赛D题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

2026美赛D题数学建模竞赛思路解析摘要:本文针对美赛D题提供系统性解决方案,提出四层建模框架(数据层、机理层、模型层、决策层),强调逻辑闭环比模型复杂度更重要。包含通用建模步骤:指标体系构建、状态评估、动态预测和策略优化,并给出Python基础代码框架。论文建议采用七段式结构,突出从现实问题到决策方案的完整闭环。核心在于通过数据驱动方法揭示问题规律,结合多源数据整合、系统行为建模和风险评估,最终形成可落地的决策建议,体现数学建模解决实际问题的能力。

一键难忘的博客 1085

NetSuite软件二次开发:NetSuite二次开发最佳实践与案例分析

SuiteScript是NetSuite提供的一种用于二次开发的脚本语言,它基于JavaScript,但添加了特定的API和框架,以支持NetSuite平台的业务逻辑开发。SuiteScript有两种版本:SuiteScript 1.0和SuiteScript 2.0,后者提供了更现代的面向对象编程模型,增强了代码的可读性和可维护性。NetSuite允许用户自定义字段以满足特定的业务需求。这些字段可以添加到现有的记录类型中,也可以用于自定义记录。自定义字段可以是文本、数字、日期、下拉列表等多种类型。

kkchenjj的博客 1468

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 地下黑客的必要条件
下一篇: XDriveBar - Display drive buttons in a fixed toolbar
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值