1.【安卓】如何获取Scheme协议的源码Url
2.WSL2 安装并下载、编译AOSP源码
3.透视CobaltStrike(二)——从CS到免杀框架Veil
4.c语言编译后如何生成exe文件
5.qt6.4.0+源码编译moc.exe+命令行文件输出简单测试
6.利用微信电脑最新版 反编译微信小程序 无需root
【安卓】如何获取Scheme协议的源码Url
Scheme协议在安卓应用中扮演着页面内跳转的关键角色,它使得开发者能够轻松控制应用内部导航。源码最常见的源码获取方式是通过郭立员老师的分享,但这种方法在某些特定场景下,源码如应用支持分享和web打开,源码springmvc源码编译会显得局限。源码这时,源码我们需要借助更深入的源码技术手段,如通过安装框架和intent拦截器,源码或者反编译apk来实现,源码然而这些操作往往会增加复杂性和门槛。源码
一个更直观的源码方法是利用按键精灵手机助手。首先,源码打开助手的源码android文件夹,通过shift+右键选择"在此处打开Powershell窗口",然后在shell中输入特定命令。这样,你将能看到详细的Scheme url、跳转的包名以及发起跳转应用的uid。这一方法不仅能查看历史跳转记录,包括时间信息,还能揭示应用间的交互路径。
若想获取更多源码命令及详细教程,按键精灵论坛、知乎账号以及微信公众号"按键精灵"是不错的选择。遇到问题,可以在论坛留言或私信小编。完整的内容教程可以参考:安卓如何获取Scheme协议的Url - 集结令●英雄归来教程比武大赛 - 按键精灵论坛。
WSL2 安装并下载、编译AOSP源码
安装WSL2
参考链接:安装WSL要求Windows 版本及更高版本(内部版本及更高版本)或Windows 。在power shell或cmd执行如下命令。
执行完之后就安装了Linux for Windows,并且打开了Windows的虚拟机平台和Linux子系统功能,并设置wsl默认版本为2。也可以手动安装,先在控制面板中找到启用或关闭Windows功能,如何防止修改源码勾选虚拟机平台和适用于Linux的Windows子系统功能。然后在应用商店找到Linux子系统(例如Ubuntu)进行安装。
如果是升级安装wsl,可能还需要同时升级linux内核。直接下载msi升级安装文件,点击安装即可。具体可参考:旧版WSL的手动安装步骤
硬盘设置
这里分为两类,一是将AOSP源码放在Windows文件系统下,二是将源码放置在WSL中。对于前者,需要修改文件目录的大小写敏感,新建完源码目录后,用管理员身份打开Windows的Powershell,执行以下命令:
其中的path就是刚新建用来同步AOSP源码的目录,需要注意的是,这个命令只对指定的目录有效,不会改变已存在的子目录的大小写敏感,所以要在同步代码之前设置好。根据文章:WSL编译AOSP必要的几个前置工作,还需要重新挂载磁盘。如果源码放在了Windows驱动器上,比如说F:\aosp,在WSL中的路径应该是/mnt/f/aosp这种形式的,此时需要以drvfs文件系统重新挂载盘符,否则编译到中途会报错:
注意,每次WSL重启,在编译之前都需要执行这步操作,也可以将它新建成WSL的一个开机服务,确保每次打开WSL都会执行这两段命令。如果是将源码放置在WSL中,需要注意WSL默认占用C盘空间,保证C盘有足够的空间,或者将WSL迁移到别的盘符。因为我的硬盘没有分区,不用担心占满C盘的空间,所以直接将源码放在WSL中编译。讨论组源码WSL安装之后默认是GB大小,对于AOSP的编译是不够的。可通过df命令查看容量,下面是我编译完之后的容量,可以看到占用了GB。
扩展WSL 2虚拟硬盘的大小 如何管理WSL磁盘空间
输出如下:
经过如上操作,将wsl的虚拟磁盘大小调整到1TB。
源码下载
创建bin,并加入path:
下载repo:
下载代码有两种方式,使用每月更新的初始化包或者传统初始化方式。
下载mirrors.tuna.tsinghua.edu.cn...,下载完成后记得根据checksum.txt的内容校验一下。由于所有代码都是从隐藏的.repo目录中checkout出来的,所以我们只保留了.repo目录,下载后解压再repo sync一遍即可得到完整的目录。使用方法如下:
此后,每次只需运行repo sync即可保持同步。
建立工作目录并初始化仓库: repo init -u mirrors.tuna.tsinghua.edu.cn... 如果需要某个特定的Android版本(列表): repo init -u mirrors.tuna.tsinghua.edu.cn... -b android-4.0.1_r1 同步源码树(以后只需执行这条命令来同步): repo sync 详细可见:AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror Android源码(AOSP)下载与编译 - 掘金
设置WSL内存大小
直接编译源码,会因为内存不足导致失败,通过free -m查看内存,只有4GB内存,swap空间只有2GB。可以通过设置WSL配置文件来修改相关配置属性。在用户目录下新建.wslconfig文件,在文件管理器输入%USERPROFILE%可找到用户文件夹。注意这里新建.wslconfig文件不要用新建文本文件的方式,这样文件可能没法被正确识别。可以通过命令行输入code .wslconfig的方式。
配置文件如下,根据自己的硬件配置尽可能多的分配多点资源,在编译完成后也能修改回来。我电脑是GB内存,所以给WSL配置GB内存,还有GB swap空间。
编译源码
编译源码就是常规流程,lunch项根据自己需要进行选择,源码资源免费下载编译线程数根据机器配置选择。
编译可能会报错缺少库文件,直接安装即可。sudo apt-get install libncurses5 如果需要编译出CMakeLists文件,方便导入CLion,需要在编译前添加环境变量。
编译成功!!
导入Clion效果。
若需要导入Android Studio中,还需要生成配置索引。
这一步需要Java环境,提前安装一下。sudo apt install openjdk--jdk
最终效果如下:
透视CobaltStrike(二)——从CS到免杀框架Veil
在深入探讨CobaltStrike的恶意样本类型之前,需明确的是,CobaltStrike可生成三种类型hta文件:Executable、Powershell、VBA,它们在hta文件内的封装形式各异,分别为嵌入PE文件、Powershell代码或VBA代码。
对于Beacon_Executable,它以VBScript为载体,内嵌硬编码PE脚本,通过WScript.Shell加载执行,最终输出kb大小的PE文件,经分析可确认该样本为CobaltStrike的分段Payload加载器。
Powershell类型的样本体积较小,通过解密中间base编码的代码执行,最终实现数据流解压缩执行,该段Powershell指令可直接执行,其在启动时判断操作系统位数,若为位则以位模式启动。执行时将shellcode写入指定文件,格式化后发现其为分段Payload中用于下载后续Payload的shellcode。
VBA类的gcc工具链源码hta文件通过在hta中创建Excel对象填充恶意宏代码执行,首先创建Excel.Application对象并更改其可见性,接着创建WscriptShell对象操作注册表,完成宏代码的添加,最后通过Auto_Open方法调用宏。此过程可直接在Excel中创建宏对象,将hta文件中的宏代码进行调试,注意位置选择至当前文档而非应用到所有模板。原始代码中包含无用代码,需通过替换或编写脚本进行简化,最终宏代码读取hex数据流,通过rundll加载执行。
CobaltStrike支持生成多种语言Payload,包括C、C#、Java、Python等,其中C、C#、JAVA、Perl、Python、Ruby、VBA等Payload为硬编码shellcode,加载器可编写将此buf加载至内存执行。COM组件的sct文件与VBA相似,通过Excel对象执行预定义宏。Powershell类型的Payload与hta类型保持一致,而Powershell_cmd类型的Payload直接生成执行指令,用于解码后的指令执行。
CobaltStrike生成的Payload本质上加载的都是CS的downloader,而Veil框架则是配合CobaltStrike使用的免杀工具。Veil可以生成具有一定免杀性的样本,其包含Evasion和Ordnance两个免杀工具。安装Veil在Kali中执行apt -y install veil即可,配置完成,通过veil指令进入框架,其中Evasion用于文件免杀,Ordnance生成Veil Shellcode。
Veil框架提供多种Payload生成方式,例如autoit、Powershell、C等,其中autoit Payload可直接编译成可执行文件,通过键入use 1选择Evasion工具,键入generate生成样本,选择不同方式生成shellcode,包括xor编码。生成后的shellcode注入到calc.exe中,验证后发现与CobaltStrike shellcode风格类似但短小,是用于下载后续Payload的。
对于MSFvenom选项的shellcode,配置时选择此选项,根据提示输入信息,生成名为payload1.exe的利用文件,注入方式与autoit类似,但感觉更稳定。关于MSFvenom shellcode与CobaltStrike shellcode的相似性将在后续文章中详细解析。选择c/meterpreter后,Veil自动配置LPORT,用户需手动输入LHOST和Filename,生成的payload包括源代码和可执行文件,其中生成的C语言源代码可直接查看。
Veil生成的meterpreter样本较为有趣,后续文章将对此进行完整分析。至此,对CobaltStrike生成的Payload类型及Veil框架的介绍完毕,期待进一步深入探讨。
c语言编译后如何生成exe文件
在C语言中,生成`.exe`文件(在Windows环境下)通常涉及使用编译器将C语言源代码(`.c`文件)转换成可执行文件(`.exe`)。这个过程通常通过命令行工具或集成开发环境(IDE)来完成。
如果你使用的是GCC编译器(如MinGW在Windows上),你可以通过打开命令行工具(如CMD或PowerShell),导航到你的源代码文件所在的目录,然后运行类似`gcc -o myprogram.exe myprogram.c`的命令来编译你的程序。这里,`gcc`是编译器的名称,`-o myprogram.exe`指定了输出文件的名称(包括`.exe`扩展名),而`myprogram.c`是你的源代码文件名。
如果你使用的是Visual Studio这样的IDE,过程则更加图形化。你需要在Visual Studio中创建一个新项目,选择C++(注意,虽然Visual Studio主要面向C++,但它也完全支持C语言),然后添加你的`.c`文件。编写并保存代码后,你可以通过点击“生成”菜单中的“生成解决方案”或使用快捷键(通常是F7)来编译你的程序。编译成功后,Visual Studio会在项目的输出目录中生成`.exe`文件。
无论是使用命令行工具还是IDE,生成`.exe`文件的核心步骤都是编译源代码。编译过程将源代码转换成机器语言,这样计算机就可以直接执行程序了。
qt6.4.0+源码编译moc.exe+命令行文件输出简单测试
在进行Qt 6.4.0源码编译并测试moc.exe命令行文件输出的步骤如下:
首先,在已有的基础上,我们继续进行重构,涉及环境为windows和powershell。
使用源码编译的moc.exe,命令如下:d:\work\qt__work\qt-everywhere-src-6.4.0\qtbase\bin\moc.exe -o mymoc.cpp ../Sender.h
与已安装的moc.exe进行对比,其路径为:C:\local\Qt\Qt6.4.0\6.4.0\msvc_\bin\moc.exe -o mymoc.cpp ../Sender.h
通过比较,我们可以观察到编译所使用的路径存在差异,这表明了编译环境的不同。
进一步分析编译后的文件mymoc.cpp,我们可以发现其内容与之前有所区别,这主要源于编译时所使用的debug模式。
为了方便后续的检索和查阅,我们将此过程的详细步骤记录于此,以供参考。
利用微信电脑最新版 反编译微信小程序 无需root
一、引言
微信小程序开发过程有时会显得冗长,但近期发现了利用微信电脑最新版获取小程序源码的新途径。通过GitHub上的反编译工具,可以轻松获取wxapkg文件,进而实现反编译。本文将简要介绍操作步骤。
二、wxapkg解析
微信小程序在云端运行,而实际执行则需从云端下载wxapkg文件至本地,再利用本地机制运行。要找到小程序的源文件包,可通过查看微信电脑版打开小程序后的目录。
电脑运行小程序后目录结构示例:C:\Users\{ { 用户名}}\Documents\WeChat Files\Applet\{ { 小程序ID}}\{ { 随机数}}\__APP__.wxapkg。请注意,仅在使用支持小程序的微信电脑版时适用。
三、环境准备
1. 需安装node.js运行环境,若未安装,请先行下载并安装。
2. 获取反编译脚本,GitHub上的qwerty大神提供了适用于node.js的版本。
3. 选择安卓模拟器(或真实设备需root)。
四、具体操作流程(以电脑版微信为例)
1. 分享小程序至电脑版微信。
2. 点击打开。
3. 导出wxapkg文件。
4. 将wxapkg文件复制至特定路径,然后在该路径下开启Powershell窗口。
5. 安装脚本所需的依赖:esprima、css-tree、cssbeautify、vm2、uglify-es、js-beautify、escodegen。
6. 执行反编译脚本:node wuWxapkg.js。
7. 若无错误提示,小程序源码即可在微信开发者工具中打开。
五、总结
当前的wxapkg加密程度可能无法满足专业需求,但对于学习和交流仍具价值。随着技术进步,此方法可能不再适用。趁现在,利用此方法获取源码,对于开发者来说是一次宝贵的学习机会。尽管源码获取相对容易,但小程序源码安全问题仍需重视。开发者们通常会将关键逻辑代码封装于单一文件中,以增加解读难度。实际上,小程序文件转换过程为Wxml转换为Html、Wxml转换为JS、Wxss转换为Css,最终形成与wx格式一致的二进制文件。
Windows命令行下载远程payload及执行任意代码的几种方法
Windows命令行中,除了powershell,还有其他方式实现远程payload下载和执行任意代码。以下是一些满足特定条件的命令行工具和方法:利用内置二进制文件执行:通过滥用Microsoft标准文件,如IE缓存和WebDAV客户端缓存,来下载payload。这种方式要求工具支持HTTP URL参数传递、UNC路径处理,以及执行下载的内联脚本。
Powershell:以powershell.exe执行payload,它通常不直接写入硬盘,但可以使用编码技巧绕过安全检测。通过WebDAV服务器访问时,payload会保存在WebDAV客户端本地缓存。
cmd.exe与批处理文件:可以使用批处理文件嵌入payload,但同样会写入WebDAV客户端本地缓存。
Cscript/Wscript:通过这两个脚本工具下载payload,写入位置同样是WebDAV客户端本地缓存。
Mshta:支持执行内联脚本,可用mshta.exe接收URL或HTA文件,写入IE本地缓存。
Rundll:可通过UNC路径执行DLL或内联JScript,写入WebDAV客户端本地缓存。
Regasm/Regsvc:利用特定DLL和WebDAV接口,写入WebDAV客户端本地缓存。
Regsvr:有多种实现方式,写入位置取决于使用方法,可能是IE本地缓存或WebDAV客户端。
Msbuild:通过msbuild.exe间接执行payload,写入WebDAV客户端本地缓存。
组合技巧:可以结合不同工具下载和执行payload,如certutil.exe或InstallUtil.exe。
payload源码示例:使用.sct脚本、.hta文件、MSBuild内联任务或DLL,可以从指定地址获取实例。
值得注意的是,如bitsadmin工具因不支持代理而未被提及。这些方法在满足条件的同时,也需考虑EDR监控和安全策略。更多详细内容可通过原文链接获取。