首页
壁纸
直播
Search
1
欢迎来到本站
70 阅读
2
EXCEL表格中的数字,为什么每次打开会自动变成日期?
68 阅读
3
.Net JIT二进制骚操DHVM破解篇
47 阅读
4
容易读错的字
37 阅读
5
超全 Stable Diffusion 常用模型推荐(含网盘下载链接)
13 阅读
默认分类
电脑技术
登录
Search
标签搜索
模型
Ai
i-kan
累计撰写
5
篇文章
累计收到
2
条评论
首页
栏目
默认分类
电脑技术
页面
壁纸
直播
搜索到
2
篇与
的结果
2026-05-15
超全 Stable Diffusion 常用模型推荐(含网盘下载链接)
推荐模型适用于Stable Diffusion webUI 、ComfyUI、 ForgeUI文章中推荐的所有模型,全部亲自用过。整理不易,如果对你有帮助,帮忙点个赞。所有模型演示与实操落地均可在以下两门课程中学习Stable Diffusion视频教程StableDiffusion Comfyui视频教程一、checkpoints大模型1、SD1.5版本大模型SD1.5官方基础大模型:v1-5-pruned-emaonly.safetensors出图效果差,一般不用来作图。主要用来模型训练、模型融合,出图演示。SD1.5官方基础大模型:v1-5-pruned.ckptSD1.5官方基础修复大模型:sd-v1-5-inpainting.ckpt写实大模型:realisticVisionV51\_v51VAE.safetensorsRealistic\_Vision\_V5.1-inpainting.safetensors 修复版本较火的写实模型,制作真是照片效果。适合动漫风格的大模型:revAnimated\_v122EOL.safetensors国风大模型:3Guofeng3\_v34.safetensorsDreamshape LCM大模型:LCM\_Dreamshaper\_v7\_4k.safetensorsLCM全称Latent Consistency Models(潜在一致性模型),可以通过几步推理合成高分辨率图像。迪士尼皮克斯风格大模型:disneyPixarCartoon\_v10.safetensors麦橘写实大模型:majicmixRealistic\_v7.safetensors适合制作亚洲漂亮女孩图片。美娜混合大模型:meinamix\_meinaV11.safetensors虚幻写实大模型:dreamshaper\_8.safetensors万象熔炉大模型:AnythingXL\_v50.safetensors适合制作二次元图像。2、SDXL版本大模型SDXL1.0官方基础模型:sd\_xl\_base\_1.0.safetensors出图效果差,一般不用来作图。主要用来模型训练、模型融合,出图演示。SDXL1.0官方refiner模型:sd\_xl\_refiner\_1.0.safetensors官方sd\_xl\_base\_1.0.safetensors模型配套的refiner,主要用来演示操作。后续的SDXL基本不需要使用refiner模型。SDXL写实大模型:realvisxlV40\_v40Bakedvae.safetensorsSDXL turbo模型:sd\_xl\_turbo\_1.0\_fp16.safetensorsTurbo模型 是一种快速生成文本到图像的模型。SDXL lightning模型:sdxl\_lightning\_4step.safetensorsSDXL-Lightning 是一种闪电般快速的文本到图像生成模型。它可以通过几个步骤生成高质量的 1024px 图像。巨无霸写实模型V8:juggernautXL\_v8Rundiffusion.safetensors巨无霸写实模型V9:juggernautXL\_v9Rundiffusionphoto2.safetensors亚洲人像模型:sdxl10ArienmixxlAsian\_v45Pruned.safetensors动漫主题模型:animagineXLV31\_v31.safetensors虚幻写实大模型:dreamshaperXL\_lightningDPMSDE.safetensorsdreamshaperXL\_alpha2Xl10.safetensors3、SD3.0版本大模型官方SD3大模型:sd3\_medium.safetensors不含文本编码器,仅包含 MMDiT 和 VAE 权重,SD.Next 将根据需要自动加载 CLiP 模型4、SD Audio版本模型音频生成模型1 .:https://pan.baidu.com/s/1EhB6QE4epY-NgzyTiYjUFg?pwd=3jif5、FLUX版本大模型FLUX dev 压缩版本:flux1-dev-fp8.safetensorsflux-2-klein-base-4b-fp8.safetensors:超强AI图片编辑:ComfyUI Flux.2 Klein部署教程(含模型与工作流)flux2\_dev\_fp8mixed.safetensors:这次真的要告别PS了:一篇文章讲清楚如何在ComfyUI中使用FLUX.2模型二、Unet模型1、SD1.5版本Unet模型2、SDXL版本Unet模型3、FLUX版本Unet模型:flux1-dev.safetensors:flux1-fill-dev.safetensors:flux1-kontext-dev.safetensors 模型下载与使用看此文章:ComfyUI Flux Kontext Dev模型使用教程:flux1-krea-dev.safetensors 模型下载与使用看此文章:FLUX.1-Krea-dev模型Comfyui最强文生图模型三、VAE模型1、SD1.5版本VAE模型vae-ft-ema-560000-ema-pruned.ckptvae-ft-mse-840000-ema-pruned.ckptcolor101VAE\_v1.safetensorsvae-original.ckpt适合漫画风格的VAE:kl-f8-anime2.ckpt2、SDXL版本VAE模型SDXL官方配套VAE模型:sdxl\_vae.safetensors:vae\_transparent\_decoder.safetensors3、FLUX版本VAE模型:ae.safetensors 安装路径:ComfyUI/models/vae/4、其他VAE模型wan\_2.1\_vae.safetensors 通义万相WAN模型配套VAE四、Clip文本编码模型stableDiffusion3SD3\_textEncoderClipG.safetensorsstableDiffusion3SD3\_textEncoderClipL.safetensorsstableDiffusion3SD3\_textEncoderT5E4m3fn.safetensors:t5\_base.safetensors:clip\_l.safetensors 安装路径:ComfyUI/models/clip/:t5xxl\_fp8\_e4m3fn.safetensors:clip-vit-large-patch14.safetensors.safetensors:t5xxl\_fp16.safetensors 安装路径:ComfyUI\models\clip:umt5\_xxl\_fp8\_e4m3fn\_scaled.safetensors五、clip\_vision图像编码模型:CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors:CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors:sigclip\_vision\_patch14\_384.safetensors:clip\_vision\_h.safetensors六、LoRA模型1、SD1.5版本LoRA模型工笔画风格LoRA:MoXinV1.safetensors盲盒风格LoRA:blindbox\_v1\_mix.safetensors汉服风格LoRA:https://pan.baidu.com/s/1zIcU8nRzD8ffye4trM0lBA?pwd=i4ey添加细节LoRA:more\_details.safetensors霓虹效果LoRA:CyberPunkAI.safetensors龙元素LoRA:dragon\_real\_base\_V1.safetensors科幻风格LoRA:XSArchi\_127.safetensors宫崎骏风格LoRA:Miyazaki.safetensors快速生成LoRA:pcm\_sd15\_smallcfg\_2step\_converted.safetensors2、SDXL版本LoRA模型lightningLoRA模型:sdxl\_lightning\_4step\_lora.safetensorsSDXL-Lightning 是一种闪电般快速的文本到图像生成模型。它可以通过几个步骤生成高质量的 1024px 图像:neo\_icon.safetensors:cutedoodle\_XL-000012.safetensors:outdoor-product-photography-SDXL.safetensors:xl\_more\_art-full\_v1.safetensors:Designer\_BlindBox-000015.safetensors:detailed.safetensors3、FLUX版本LoRA模型:Brand\_Marks\_-\_Logo\_Icon\_Symbol.safetensors:cartoon\_logo\_flux\_lora.safetensors:CuteLogoMaker.safetensors:Graffiti\_Logo\_Style\_Flux.safetensors:logomaker1024-000008.safetensors:VibrantTech3D\_v1.safetensors:CharacterDesign-FluxV2.safetensors:FluxMythP0rtr4itStyle.safetensors:aidmaRealisticPeoplePhotograph-FLUX-V0.2.safetensors:OB拍立得人像摄影Instant camera portrait photography V2.0.safetensors:zyd232\_Hanfu\_Flux1D\_Ming\_PiFeng\_v1\_0.safetensors七、IC-LoRA模型In-Context LoRA(IC-LoRA)的核心概念是将条件图像和目标图像拼接成一张合成图像,同时使用自然语言来定义任务。这种方法可以无缝适应各种应用。1、SD1.5版本IC-LoRA模型2、SDXL版本IC-LoRA模型3、FLUX版本IC-LoRA模型:Migration\_Lora\_cloth.safetensors 功能:持续的衣物迁移 高精度地在参考图像之间传递服装风格。八、LyCORIS模型1、SD1.5版本LyCORIS模型微缩世界LyCORIS模型:miniature\_V1.safetensors九、Embedding嵌入式模型1、SD1.5版本Embedding模型负嵌入Embedding:EasyNegative.safetensors使用率极高的一款负面提示词 embedding 模型,可以有效提升画面的精细度。适合动漫大模型。负嵌入Embedding:ng\_deepnegative\_v1\_75t.pt适合实写大模型正嵌入年龄滑块Embedding:AS-Adult.ptAS-Adult-neg.ptAS-Elderly.ptAS-MidAged.ptAS-YoungerV2.ptAS-YoungestV2.ptAS-YoungV2.ptAS-YoungV2-neg.pt十、Hypernetwork超网络模型1、SD1.5版本Hypernetwork模型可爱图标:Toru8pWavenChibi\_wavenchibiV10b.pt十一、Controlnet模型1、SD1.5版本Controlnet模型重上色Controlnet模型:ioclab\_sd15\_recolor.safetensorsip-adapter Controlnet模型:ip-adapter\_sd15.ptht2iadapterControlnet模型:t2iadapter\_color\_sd14v1.ptht2iadapter\_sketch\_sd15v2.ptht2iadapter\_style\_sd14v1.pth:control\_v11e\_sd15\_ip2p.pth:control\_v11e\_sd15\_shuffle.pth:control\_v11f1e\_sd15\_tile.pth:control\_v11f1p\_sd15\_depth.pth:control\_v11p\_sd15\_canny.pth:control\_v11p\_sd15\_inpaint.pth:control\_v11p\_sd15\_lineart.pth:control\_v11p\_sd15\_mlsd.pth:control\_v11p\_sd15\_normalbae.pth:control\_v11p\_sd15\_openpose.pth:control\_v11p\_sd15\_scribble.pth:control\_v11p\_sd15\_seg.pth:control\_v11p\_sd15\_softedge.pth:control\_v11p\_sd15s2\_lineart\_anime.pth2、SDXL版本Controlnet模型:control\_instant\_id\_sdxl.safetensors:ip-adapter\_instant\_id\_sdxl.bin:xinsircontrolnet-openpose-sdxl-1.0.safetensors:control-lora-canny-rank256-SDXL.safetensors:control-lora-depth-rank256-SDXL.safetensors:control-lora-recolor-rank256-SDXL.safetensors:control-lora-sketch-rank256-SDXL.safetensors:t2i-adapter-canny-sdxl-1.0.safetensors:t2i-adapter-depth-midas-sdxl-1.0.safetensors:t2i-adapter-depth-zoe-sdxl-1.0.safetensors:t2i-adapter-lineart-sdxl-1.0.safetensors:t2i-adapter-openpose-sdxl-1.0.safetensors:t2i-adapter-sketch-sdxl-1.0.safetensors:ip-adapter-plus\_sdxl\_vit-h.safetensors:ip-adapter\_sdxl.safetensors:CN-anytest\_v4-marged.safetensors3、FLUX版本Controlnet模型:ip\_adapter.safetensors:flux-canny-controlnet-v3.safetensors:FLUX.1-dev-Controlnet-Inpainting-Betal.safetensors:flux\_dev\_openpose\_controlnet.safetensors十二、sam模型1、sam模型sam\_vit\_b\_01ec64.pthsam\_vit\_h\_4b8939.pthsam\_vit\_l\_0b3195.pth2、sam2模型Segment Anything Model 2 (SAM 2)是解决图像和视频中可提示的视觉分割问题的基础模型。:sam2.1\_hiera\_large-fp16.safetensors十三、其他语义分割模型parsing\_parsenet.pth一个与图像解析或语义分割相关的模型文件,通常用于人体解析、场景解析等任务。它可能是基于 ParseNet 或其他类似架构的预训练模型。十四、groundingdino模型groundingdino\_swinb\_cogcoor.pthgroundingdino\_swint\_ogc.pth十五、GFPGAN模型1.GFPGANv1.4.pth:codeformer-v0.1.0.pth:GFPGANv1.3.pth:GPEN-BFR-512.onnx:GPEN-BFR-1024.onnx:GPEN-BFR-2048.onnx十六、Codeformercodeformer-v0.1.0.pth十七、面部检测模型detection\_Resnet50\_Final.pth十八、SVD模型Stable Video Diffusion (SVD) 模型系列,是由 Stability AI 开发的一种基于扩散模型(Diffusion Model)的视频生成模型,能够从单张图像生成高质量的视频。svd\_xt.safetensors:stable-video-diffusion-img2vid-xt-1-1 huggingface项目文件包十九、Zero123模型Stable Zero123 是由 Stability AI 开发的一种基于 Zero123 技术的图像生成模型,专门用于从单张图像生成高质量的多视角 3D 物体视图stable\_zero123\_c.ckpt二十、layerdiffuse模型1、SD1.5版本layerdiffuse模型:layer\_sd15\_fg2bg.safetensors:layer\_sd15\_joint.safetensors:layer\_sd15\_vae\_transparent\_decoder.safetensors2、SDXL版本layerdiffuse模型:layer\_xl\_bg2ble.safetensors:layer\_xl\_bgble2fg.safetensors:layer\_xl\_fg2ble.safetensors:layer\_xl\_fgble2bg.safetensors:layer\_xl\_transparent\_attn.safetensors:layer\_xl\_transparent\_conv.safetensors二十一、antelopev2模型:1k3d68.onnx:2d106det.onnx:genderage.onnx:glintr100.onnx:scrfd\_10g\_bnkps.onnx二十二、brushnet模型BrushNet 是一种基于扩散的文本引导图像修复模型,可以即插即用地加入任何预训练的扩散模型中。:random\_mask.safetensors:segmentation\_mask.safetensors:diffusion\_pytorch\_model.safetensors 对应的配置文件:config.json二十三、Fooocus模型:fooocus\_inpaint\_head.pth:inpaint\_v26.fooocus.patch二十四、IPAdapter模型1、SD1.5版本IPAdapter模型:ip-adapter\_sd15.safetensors:ip-adapter\_sd15\_light\_v11.bin:ip-adapter\_sd15\_vit-G.safetensors:ip-adapter-full-face\_sd15.safetensors:ip-adapter-plus\_sd15.safetensors:ip-adapter-plus-face\_sd15.safetensors2、SDXL版本IPAdapter模型:ip-adapter\_sdxl.safetensors:ip-adapter\_sdxl\_vit-h.safetensors:ip-adapter-plus\_sdxl\_vit-h.safetensors:ip-adapter-plus-face\_sdxl\_vit-h.safetensors3、FLUX版本IPAdapter模型二十五、LaMa模型基于傅里叶卷积的分辨率稳健大型掩模修复:big-lama.pt二十六、MAT模型:Places\_512\_FullData\_G.pth二十七、Gligen模型GLIGEN 在现有的预训练文本到图像扩散模型的基础上构建并扩展其功能,使其能够根据参考输入进行条件生成。:gligen\_sd14\_textbox\_pruned.safetensors二十八、UnCLIP模型UnCLIP 的主要功能是通过文本描述生成高质量的图像。它结合了 CLIP 的文本-图像对齐能力和扩散模型(Diffusion Model)的图像生成能力,能够生成与文本描述高度匹配的图像:sd21-unclip-h.ckpt二十九、llava模型:ggml-model-q4\_k.gguf:mmproj-model-f16.gguf三十、wd-v1-4模型与模型字典:wd-v1-4-convnextv2-tagger-v2.onnx:wd-v1-4-convnextv2-tagger-v2.csv 字典:wd-v1-4-moat-tagger-v2.onnx:wd-v1-4-moat-tagger-v2.csv 字典三十一、TripoSR模型TripoSR 是由 Stability AI 和 Tripo AI 合作开发的快速前馈 3D 生成模型。1.:TripoSR-model.ckpt三十二、AnimateDiff模型1、Motion modules模型:v3\_sd15\_mm.ckpt2、Motion LoRAs模型:v2\_lora\_PanLeft.ckpt:v2\_lora\_PanRight.ckpt:v2\_lora\_RollingAnticlockwise.ckpt:v2\_lora\_RollingClockwise.ckpt:v2\_lora\_TiltDown.ckpt:v2\_lora\_TiltUp.ckpt:v2\_lora\_ZoomIn.ckpt:v2\_lora\_ZoomOut.ckpt三十三、InsightFace模型InsightFace是一个开源的2D&3D深度人脸分析工具箱,主要基于PyTorch和MXNet。1、inswapper模型:inswapper\_128.onnx2、buffalo\_l模型InsightFace 发布的 buffalo\_l 面部检测和识别模型:1k3d68.onnx:2d106det.onnx:det\_10g.onnx:genderage.onnx:w600k\_r50.onnx三十四、IC-Light模型IC-Light全称“Imposing Consistent Light”,是一个操纵图像照明的项目:iclight\_sd15\_fbc.safetensors:iclight\_sd15\_fc.safetensors三十五、RMBG 模型RMBG 是我们最先进的背景去除模型,旨在有效地将各种类别和图像类型的前景与背景分开。:briaai\_rmbg\_v1.4.pth三十六、SUPIR模型:SUPIR-v0F.ckpt模型实操案例:ComfyUI 模糊图像变清晰三十七、BiRefNet模型目前较好用的开源可商用背景抠除模型:COD.safetensors 一种用于隐蔽目标检测(COD)的预训练模型。:DIS.safetensors 一种用于二分图像分割(DIS)的预训练模型。:DIS-TR\_TEs.safetensor.safetensors 具有大量数据集的预训练模型。:General.safetensors 用于一般用例的预训练模型。:General-Lite.safetensors 用于一般用例的轻量级预训练模型。:General-Lite-2K.safetensors 用于一般用例的轻量级预训练模型,适用于高分辨率图像。 (最佳分辨率2560x1440).:HRSOD.safetensors 一种用于高分辨率显著目标检测(HRSOD)的预训练模型。:Matting.safetensors 一种使用无trimap matting的预训练模型。:Portrait.safetensors 人物肖像预训练模型。:birefnet-v1-lite.onnx模型实操案例:ComfyUI 一键抠图三十八、CatVTON模型:CatVTON模型实操案例:ComfyUI 一键换装三十九、Redux模型FLUX Redux 是用于生成图像变化的所有 FLUX基础模型的适配器。给定一个输入图像,FLUX Redux 可以重现略有变化的图像,从而可以细化给定的图像。:flux1-redux-dev.safetensors模型实操案例:ComfyUI 一键换装四十、MODNet模型MODNet 是一个仅使用 RGB 图像输入的实时人像抠图模型:hivision\_modnet.onnx:modnet\_photographic\_portrait\_matting.onnx模型实操案例:ComfyUI 证件照制作四十一、retinaface模型离线人脸检测模型:retinaface-resnet50.onnx四十二、PuLID模型面部保持技术。Pure and Lightning ID Customization via Contrastive Alignment(通过对比对齐实现 Pure 和 Lightning ID 定制)1、SD1.5版本PuLID模型2、SDXL版本PuLID模型:ip-adapter\_pulid\_sdxl\_fp16.safetensors3、FLUX版本PuLID模型:pulid\_flux\_v0.9.0.safetensors模型实操案例:ComfyUI 制作个人头像四十三、facexlib模型facexlib是一个基于 pytorch 的面部相关功能库,例如检测、对齐、识别、跟踪、面部恢复工具等。它仅提供推理(不提供训练)。:detection\_Resnet50\_Final.pth:parsing\_bisenet.pth:parsing\_parsenet.pth模型实操案例:ComfyUI 制作个人头像四十四、BOPBTL 模型老照片修复技术_1._:BOPBTL checkpoints模型:BOPBTL VAE模型模型实操案例:ComfyUI 老照片修复四十五、Florence-2模型Florence-2 是一种先进的视觉基础模型,它使用基于提示的方法来处理各种视觉和视觉语言任务。Florence-2 可以解释简单的文本提示来执行字幕、对象检测和分割等任务。:Florence-2模型四十六、Dlib模型人脸检测模型:shape\_predictor\_68\_face\_landmarks.dat四十七、Makeup模型美妆迁移模型:mobilenet0.25\_Final.pth:pytorch\_model.bin:pytorch\_model\_1.bin:pytorch\_model\_2.bin5.:resnet50.pth:spiga\_300wpublic.pt模型实操案例:ComfyUI 美妆迁移四十八、LTX-Video 视频模型LTX-Video 是第一个基于 DiT 的视频生成模型,能够实时生成高质量视频。它以 768x512 的分辨率生成 24 FPS 的视频,速度比观看速度更快。该模型在包含各种视频的大规模数据集上进行训练,可生成内容逼真、内容多样的高分辨率视频。我们为文本转视频以及图像+文本转视频用例提供了模型ltx-video-2b-v0.9.5.safetensors模型实操案例:4-39 ComfyUI 文生视频与图生视频四十九、WAN 视频模型阿里巴巴旗下开源视频生成模型通义万相模型:wan2.1\_i2v\_720p\_14B\_fp8\_e4m3fn.safetensors:wan2.1\_t2v\_14B\_fp8\_e4m3fn.safetensors模型实操案例:4-39 ComfyUI 文生视频与图生视频五十、Depth-Anything-V2模型:depth\_anything\_v2\_vits.pth:depth\_anything\_v2\_vitb.pth:depth\_anything\_v2\_vitl.pth:depth\_anything\_v2\_vitg.pth五十一、MimicMotion模型: MimicMotionMergedUnet\_1-1-fp16.safetensors模型实操案例:4-42 MimicMotion 小姐姐跳舞视频制作五十二、DWPose模型:dw-ll\_ucoco\_384\_bs5.torchscript.pt:yolox\_l.torchscript.pt模型实操案例:4-42 MimicMotion 小姐姐跳舞视频制作五十三、sonic模型:模型安装包:sonic模型下载链接包含以下文件模型实操案例:4-43 ComfyUI 数字人制作五十四、TopazVideoAI模型TopazVideoAI模型是用在TopazVideoAI软件中对视频进行放大、细节添加、帧差值等相关视频处理的模型:模型安装包:TopazVideoAI模型模型实操案例:4-44 ComfyUI 视频放大五十五、RVM模型RVM 专为鲁棒的人体视频抠图而设计。与将帧作为独立图像处理的现有神经模型不同,RVM 使用循环神经网络来处理具有时间记忆的视频。RVM 可以在任何视频上实时执行抠图,而无需额外输入。:rvm\_mobilenetv3\_fp16.torchscript:rvm\_resnet50\_fp16.torchscript模型实操案例:4-45 ComfyUI 视频抠图五十六、ProPainter模型ProPainter:改进视频修复的传播和变换器:ProPainter.pth:raft-things.pth:recurrent\_flow\_completion.pth模型实操案例:4-46 ComfyUI 视频去水印与物体抹除持续更新中……原文来源:https://zhuanlan.zhihu.com/p/28932301846更多Stable Diffusion教程请看以下视频:Stable Diffusion视频教程StableDiffusion Comfyui视频教程
2026年05月15日
13 阅读
1 评论
0 点赞
2024-10-09
.Net JIT二进制骚操DHVM破解篇
前言经研究,号称最强.Net加密软件DNGuard HVM(以下简称DHVM),五行代码基本上可以优雅的破解它,本篇看下。友情提示,以下全是二进制汇编骚操,慎入。概括示例:非常简单的示例 static void ABC() { Console.WriteLine("Call ABC"); } static void DEF() { Console.WriteLine("Call DEF"); } static void Main(string[] args) { Console.WriteLine("Call Main"); ABC(); DEF(); Console.ReadLine(); }修改调用ABC函数的逻辑为调用DEF函数,Main函数的MSIL二进制代码如下: 00 72 25 00 00 70 28 0e 00 00 0a 00 28 06 00 00 06 00 28 07 00 00 06 00 28 0f 00 00 0a 26 2a这里的MSIL二进制代码可以参考:罕见的技术:MSIL的机器码简析1.难点因为Hook JIT,简单的MSIL修改已经不起作用。DHVM的各种反调试,比如VS调试器无法进入某些内存地址。一进入就会报异常。它静态地址在运行的时候动态偏移,它进行了PE的IAT(导入表)的Name字段验证,当IAT的Name不为0的时候,就会报异常等。这些东西叠加在一起,无法调试,无法通过输入表注入DLL等。2.蛛丝马迹避开这些反调试手段,魔高一尺道高一丈嘛,蛛丝马迹即是破绽。当我们通过一些可以调试的地址进入发现一些有趣的东西,比如以下代码: 0000000180497AB2: E9 A1 73 00 00 jmp 0000000180497AB8 0000000180497AB7: F8 clc 0000000180497AB8: 4C 89 5F 10 mov qword ptr [rdi+10h],r11这一段汇编代码是关键点,它通过jmp指令跳到地址0000000180497AB8。然后执行指令 mov qword ptr [rdi+10h],r11这里的r11寄存器保存的是通过DHVM加密后的托管DLL的真实的MSIL二进制代码。rdi寄存器是DHVM Hook的JIT的函数invokeCompileMethod的参数methodInfo地址,rdi+0x10即是methodInfo的成员变量IL_Code地址。这个IL_Code里面的值会被JIT编译器编译成机器码,然后运行。那么这段指令的意思很明显,也就是说把DHVM加密后把保存的托管DLL的真实MSIL二进制代码赋值给IL_Code。它这么做的目的就是屏蔽掉原有托管DLL里面的MSIL,而用DHVM自己加密之后保存的MSIL。无论你怎么修改原有的托管DLL,都不会影响JIT的执行。3.预破既然探查到了以上蛛丝马迹,下面着手解决掉DHVM。这里的思路是,因为jmp是个跳转指令,所以可以让它跳转到自己的地址。这个自己的地址因为无法通过IAT注入DLL构建,上面说了DHVM会搜寻IAT的Name字段是否为0。因为Win11超强的PatchGuard,所以这里不考虑DLL注入了。直接在HVMRun64.dll内部构建。通过dumpbin,把HVMRun64.dll的汇编代码导出到记事本。HVMRun64.dll的最后的汇编地址如下: 000000018049EE53: 00 74 56 01 add byte ptr [rsi+rdx*2+1],dh 000000018049EE57: 00它这个地址对应的是把HVMRun64二进制的地址如下: 00499253:00 74 56 01 00从00499258地址开始后面全都是0,类似如下: 00499258:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00可以从这里为零的数据开始构建。在构建数据之前还需要做一件事情,我们上面蛛丝马迹里面jmp指令 0000000180497AB2: E9 A1 01 00 00 jmp 0000000180497AB8需要让它跳转到00499258这个地址来,然后在这个为零地址里面做自己想要做的事情。如何跳转呢?可以把jmp地址改成如下: //jmp跳转地址减去jmp所在地址减去5等E9后面的数值,E9是jmp机器码 0000000180497AB2: E9 A1 73 00 00 jmp 000000018049EE58这里的000000018049EE58地址指向的即是00499258所在全部是零的地址处。当它跳转到0区之后如下代码:首先在00499258地址处写入二进制代码:4D 89 DF,这三个十六进制代表的汇编是mov r15,r11,上面说了r11保存的是MSIL需要编译的二进制代码,通过跟踪发现如果直接更改r11寄存器,则会导致异常。跟踪也发现r15寄存器为零,所以这里把r11赋值给r15。然后把蛛丝马迹里面的代码 0000000180497AB8: 4C 89 5F 10 mov qword ptr [rdi+10h],r11也就是这里的r11替换成r15,让它称为最后编译的MSIL我们需要做的就是在r15里面修改MSIL二进制即可。如何把r11替换成r15呢?看它的代码: 0000000180497AB8: 4C 89 5F 10 mov qword ptr [rdi+10h],r11修改成如下: 0000000180497AB8 4C 89 7F 10 mov qword ptr [rdi+10h],r15 把机器码5F改成7F即可。以上所有准备好了,我们开始替换MSIL代码,也即是r15寄存器修改。4.破解上面把十六进制的4D 89 DF写入了00499258地址,也即是000000018049EE58所指向的地址。因为4D89DF占3个字节,所以下面的地址 0x000000018049EE58+0x3==000000018049EE5B.000000018049EE5B这个地址写入如下: 0049925B:49 C6 47 0D 07转换成汇编也即是如下: 000000018049EE5B 49 C6 47 0D 07 mov ptr byte [r15+D],07这里是把07这个数值赋值给r15偏移的0xD的位置处。这里修改r15偏移的0xD位置的数值,实际上是把示例里面的调用的ABC函数修改成调用DEF函数,也就是改变函数逻辑。示例的结果是: Call Main Call ABC Call DEF我们通过hook DHVM之后的结果是 Call Main Call DEF Call DEF示例里面的MSIL二进制代码是: 00 72 25 00 00 70 28 0e 00 00 0a 00 28 06 00 00 06 00 28 07 00 00 06调用ABC函数的MSIL二进制代码是: 28 06 00 00 06调用DEF函数的二进制代码是: 28 07 00 00 06可以看到ABC和DEF函数的MSIL二进制代码,只是基本上相同,上面偏移的0x1的位置一个是06,一个是07。如果想要把调用ABC改成调用DEF,这里只需要把06改成07即可,也就是这段汇编代码的意义 ` ` 000000018049EE5B 49 C6 47 0D 07 mov ptr byte [r15+D],07这里改了之后,还得跳回去,因为上面的汇编占了五个字节,所以这里下一个地址是: 0x000000018049EE5B+0x5==0x000000018049EE60在地址0x000000018049EE60里面跳转到原来的jmp需要跳转的地址也即是 00499260:E9 53 8C FF FF 000000018049EE60 E9 53 8C FF FF jmp 0000000180497AB8这样就完成了整个闭环的操作,在Hook DHVM里面这里只是简单的修改了一个字节数值,当然可以修改更多以满足自己的需求。本篇用的是:.Net JIT的骚操作DNGuard HVM原理简析。里面提到的第二种方法也即是破二。第一种方法也可,而且能够做的更多。但是规模和成本上去了。个人比较喜欢简洁,所以选择了第二种。5.整体那么整体的代码是:DHVM跳转代码和r11替换成r15 0000000180497AB2: E9 A1 73 00 00 jmp 000000018049EE58 0000000180497AB8 4C 89 7F 10 mov qword ptr [rdi+10h],r15hook代码: 000000018049EE58 4D 89 DF mov r15,r11 000000018049EE5B 49 C6 47 0D 07 mov ptr byte [r15+D],07 000000018049EE60 E9 53 8C FF FF jmp 0000000180497AB8可以看到,真正的代码,也就那么几行,甚至也就是修改一个字节。所谓返璞归真,即是这个道理。以上DHVM的整体过程,仅用于学习用途。
2024年10月09日
47 阅读
0 评论
0 点赞