IL汇编语言做一个窗体
网上看到一段代码,
.assembly extern
mscorlib {} .assembly Classes
{ .ver 1:0:1:0 }
.namespace MyForm
{
.class public TestForm extends
[System.Windows.Forms]System.Windows.Forms.Form
{
.field private class [System]System.ComponentModel.IContainer components
.method public static void Main() cil managed
{
.entrypoint
.maxstack 1
//Create New Object of TestForm Class and Call the Constructor
newobj instance void MyForm.TestForm::.ctor()
call void [System.Windows.Forms]
System.Windows.Forms.Application::Run(
class [System.Windows.Forms]System.Windows.Forms.Form)
ret
}
}
}
似乎是做一个窗体出来;拿去构建一下,没什么效果;光有这一段应该是还不能做出窗体;
用VS做一个窗体exe,然后ildasm,加/text参数,获取全部的il代码保存下来;
看一下代码相当多;
逐步的删除一些,只要先构建通过,运行出现一个窗体即可;
资源相关的删掉;

.assembly test { ... } 整个这一段删掉;
可以构建成功,但是运行窗体不会出现;那保留这一段;
dispose删掉,销毁先不管;
资源Resource相关的删掉,应该没什么资源,
Culture相关的删掉,不知道是什么,
Settings相关的删掉,一个窗体没有用到,
一直删到这里,
下面看上去是Properties里有个Resources类,删掉,
.assembly test { ... } 里面看一下,版权和版本相关的删掉,
到此剩下的代码如下,
.assembly extern System.Windows.Forms
{.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4...ver 4:0:0:0
}
.assembly extern mscorlib
{.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4...ver 4:0:0:0
}
.assembly extern System
{.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4...ver 4:0:0:0
}
.assembly test
{.custom instance void [mscorlib]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( 01 00 00 00 00 ).custom instance void [mscorlib]System.Reflection.AssemblyConfigurationAttribute::.ctor(string) = ( 01 00 00 00 00 ).custom instance void [mscorlib]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( 01 00 00 00 00 ).custom instance void [mscorlib]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( 01 00 04 74 65 73 74 00 00 ) // ...test...custom instance void [mscorlib]System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( 01 00 00 00 00 ).custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ).custom instance void [mscorlib]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( 01 00 04 74 65 73 74 00 00 ) // ...test...custom instance void [mscorlib]System.Reflection.AssemblyTrademarkAttribute::.ctor(string) = ( 01 00 00 00 00 ).hash algorithm 0x00008004.ver 1:0:0:0
}.module test.exe
// MVID: {AC8E5C6C-7768-4BFE-9524-E94CA472F376}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0002 // WINDOWS_GUI
.corflags 0x00020003 // ILONLY 32BITREQUIRED
// Image base: 0x02460000// =============== CLASS MEMBERS DECLARATION ===================.class public auto ansi beforefieldinit test.Form1extends [System.Windows.Forms]System.Windows.Forms.Form
{.field private class [System]System.ComponentModel.IContainer components.method public hidebysig specialname rtspecialnameinstance void .ctor() cil managed{// Code size 24 (0x18).maxstack 8IL_0000: ldarg.0IL_0001: ldnullIL_0002: stfld class [System]System.ComponentModel.IContainer test.Form1::componentsIL_0007: ldarg.0IL_0008: call instance void [System.Windows.Forms]System.Windows.Forms.Form::.ctor()IL_000d: nopIL_000e: nopIL_000f: ldarg.0IL_0010: call instance void test.Form1::InitializeComponent()IL_0015: nopIL_0016: nopIL_0017: ret} // end of method Form1::.ctor.method private hidebysig instance voidInitializeComponent() cil managed{// Code size 33 (0x21).maxstack 8IL_0000: nopIL_0001: ldarg.0IL_0002: newobj instance void [System]System.ComponentModel.Container::.ctor()IL_0007: stfld class [System]System.ComponentModel.IContainer test.Form1::componentsIL_000c: ldarg.0IL_000d: ldc.i4.1IL_000e: call instance void [System.Windows.Forms]System.Windows.Forms.ContainerControl::set_AutoScaleMode(valuetype [System.Windows.Forms]System.Windows.Forms.AutoScaleMode)IL_0013: nopIL_0014: ldarg.0IL_0015: ldstr "Form1"IL_001a: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)IL_001f: nopIL_0020: ret} // end of method Form1::InitializeComponent} // end of class test.Form1.class private abstract auto ansi sealed beforefieldinit test.Programextends [mscorlib]System.Object
{.method private hidebysig static void Main() cil managed{.entrypoint.custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )// Code size 26 (0x1a).maxstack 8IL_0000: nopIL_0001: call void [System.Windows.Forms]System.Windows.Forms.Application::EnableVisualStyles()IL_0006: nopIL_0007: ldc.i4.0IL_0008: call void [System.Windows.Forms]System.Windows.Forms.Application::SetCompatibleTextRenderingDefault(bool)IL_000d: nopIL_000e: newobj instance void test.Form1::.ctor()IL_0013: call void [System.Windows.Forms]System.Windows.Forms.Application::Run(class [System.Windows.Forms]System.Windows.Forms.Form)IL_0018: nopIL_0019: ret} // end of method Program::Main} // end of class test.Program
ilasm一下,可以构建成功并运行出现一个窗体;下回继续;
相关文章:
IL汇编语言做一个窗体
网上看到一段代码, .assembly extern mscorlib {} .assembly Classes { .ver 1:0:1:0 } .namespace MyForm { .class public TestForm extends [System.Windows.Forms]System.Windows.Forms.Form { .field private class [System]…...
不用技术代码,分班查询系统怎么做?
暑假即将结束,新学期开始将面临分班信息公布的工作!对于分班信息公布,涉及到学生的个人信息,包括姓名、学号、班级等。在发布这些信息时,必须确保数据的保密性,防止未经授权的人员获取到学生的个人信息。因…...
【Mybatis】调试查看执行的 SQL 语句
1. 问题场景: 记录日常开发过程中 Mybatis 调试 SQL 语句,想要查看Mybatis 中执行的 SQL语句,导致定位问题困难 2. 解决方式 双击shift找到mybatis源码中的 MappedStatement的getBoundSql()方法 public BoundSql getBoundSql(Object para…...
【多视重建】从Zero-123到One-2-3-45:多视角生成
文章目录 摘要一、引言二、相关工作三、Zero-1-to-33.1.学习如何控制照相机的视角3.2.视角作为条件的扩散3.3三维重构3.4 数据集 四、One-2-3-454.1 Zero123: 视角条件的 2D Diffusion4.2 NeRF优化:将多视图预测提升到三维图像4.3 基于不完美多视图的 神经表面重建*…...
(四)Unity开发Vision Pro——参考文档
4.参考文档 4.1 支持的功能和组件 4.1.1 支持的 Unity 功能和组件 大多数 Unity 组件无需修改即可在此平台上运行 - 包括大多数自定义 MonoBehaviours、动画逻辑、物理、输入处理、资产管理、AI 等。然而,需要渲染的组件需要特殊的支持。因此,一些组件…...
【Linux】简单线程池的设计与实现 -- 单例模式
前言对锁的封装整体代码LockGuard - RALLRALLMutex封装 对线程创建的封装整体代码成员函数解释声明 业务处理封装-加减乘除(可有可无)整体代码成员函数解释声明 线程池的设计与实现整体代码成员函数解释声明 展示 前言 线程池: 一种线程使用模式。线程过…...
[RoarCTF 2019Online Proxy]sql巧妙盲注
文章目录 [RoarCTF 2019Online Proxy]sql巧妙盲注解题脚本脚本解析 [RoarCTF 2019Online Proxy]sql巧妙盲注 解题 在源代码界面发现:Current Ip 我们会联想到:X-Forwarded-For来修改ip: 结果我们发现,response会讲Last Ip回显出…...
flutter开发实战-just_audio实现播放音频暂停音频设置音量等
flutter开发实战-just_audio实现播放音频暂停音频设置音量等 最近开发过程中遇到需要播放背景音等音频播放,这里使用just_audio来实现播放音频暂停音频设置音量等 一、引入just_audio 在pubspec.yaml引入just_audio just_audio: ^2.7.0在iOS上,video_p…...
【Bert101】最先进的 NLP 模型解释【01/4】
0 什么是伯特? BERT是来自【Bidirectional Encoder Representations from Transformers】变压器的双向编码器表示的缩写,是用于自然语言处理的机器学习(ML)模型。它由Google AI Language的研究人员于2018年开发,可作为…...
c语言经典例题讲解(输出菱形,喝汽水问题)
目录 一、输出菱形 二、喝汽水问题 方法1:一步一步来 方法二:直接套公式 一、输出菱形 输出类似于下图的菱形: 通过分析:1、先分为上下两部分输出 2.在输出前先输出空格 3.找规律进行输出 可知,可令上半部分lin…...
【Flutter】【基础】CustomPaint 绘画功能(一)
功能:CustomPaint 相当于在一个画布上面画画,可以自己绘制不同的颜色形状等 在各种widget 或者是插件不能满足到需求的时候,可以自己定义一些形状 使用实例和代码: CustomPaint: 能使你绘制的东西显示在你的ui 上面&a…...
iOS 实现图片高斯模糊效果
效果图 用到了 UIVisualEffectView 实现代码 - (UIVisualEffectView *)bgEffectView{if(!_bgEffectView){UIBlurEffect *blur [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];_bgEffectView [[UIVisualEffectView alloc] initWithEffect:blur];}return _bgEffect…...
[保研/考研机试] KY7 质因数的个数 清华大学复试上机题 C++实现
描述 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如1202*2*2*3*5,共有5个质因数。 输入描述: 可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。 输出描述: 对于每组数…...
初识Redis
目录 认识Redis分布式系统Redis的特性Redis的应用场景Redis客户端Redis命令 认识Redis 上面一段话是官网给出的对Redis的介绍,in-memory data store表明Redis是在内存中存储数据的,这和我们接触的其他数据库就有很大的不同,比如MySQL…...
每天一道leetcode:115. 不同的子序列(动态规划困难)
今日份题目: 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数。 题目数据保证答案符合 32 位带符号整数范围。 示例1 输入:s "rabbbit", t "rabbit" 输出:3 解释: 如下所…...
服务器数据恢复-RAID5多块磁盘离线导致崩溃的数据恢复案例
服务器数据恢复环境: DELL POWEREDGE某型号服务器中有一组由6块SCSI硬盘组建的RAID5阵列,LINUX REDHAT操作系统,EXT3文件系统,存放图片文件。 服务器故障&分析: 服务器raid5阵列中有一块硬盘离线,管理员…...
NO.2 MyBatis框架:创建Mapper接口和映射文件,实现基本增删改查
目录 1、Mapper接口和映射文件关系 2、Mapper接口和映射文件的命名规则 2.1 Mapper接口的命名规则 2.2 映射文件的命名规则 3、Mapper接口和映射文件的创建及增删改查的实现 3.1 Mapper接口和映射文件的创建 3.2 增删改查的实现 3.2.1表结构 3.2.2 创建表User对应的实…...
【JS】怎么提取object类的内容
需求:在网页端中通过getElementsByClassName获取到一个元素,想提取其中的数字内容做个if判断,奈何一直提取不了 开始获取元素时,以为默认就是字符类型;但使用操作字符的函数就失败,然后就考虑数据类型是不是…...
分布式系统的 38 个知识点
天天说分布式分布式,那么我们是否知道什么是分布式,分布式会遇到什么问题,有哪些理论支撑,有哪些经典的应对方案,业界是如何设计并保证分布式系统的高可用呢? 1. 架构设计 这一节将从一些经典的开源系统架…...
机器学习基础(二)
线性回归 误差是独立并且具有相同的分布通常认为服从均值为0方差为的高斯分布。 损失函数(loss Function)/代价函数(Cost Function) 其实两种叫法都可以,损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随…...
星图AI云:Qwen3-VL:30B私有化部署,飞书机器人快速搭建
星图AI云:Qwen3-VL:30B私有化部署,飞书机器人快速搭建 1. 为什么你需要一个能看图说话的飞书助手? 想象一下这个场景:周一早上,你刚打开飞书,就看到同事在群里发了一张密密麻麻的Excel表格截图࿰…...
Cursor Skills 实战:从概念到生产级前端界面的一站式指南
1. 为什么你需要掌握Cursor Skills? 第一次听说Cursor Skills时,我也觉得这不过是又一个AI噱头。直到在真实项目中用它重构了一个电商登录页面,开发时间从3天缩短到3小时,我才意识到这可能是前端开发的一次革命性工具。 简单来说…...
Clion高效开发技巧:一键解决多个C/C++文件运行报错问题
Clion高效开发技巧:一键解决多个C/C文件运行报错问题 在C/C开发中,频繁切换测试不同源文件是常态,但每次修改CMakeLists.txt的繁琐操作让许多开发者头疼。今天分享的这套工作流,能让你在Clion中像切换Python脚本一样自由运行任意C…...
Qwen2.5-Coder-1.5B功能体验:代码生成、推理、修复一站式解决
Qwen2.5-Coder-1.5B功能体验:代码生成、推理、修复一站式解决 1. 模型概览 Qwen2.5-Coder-1.5B是阿里云通义大模型团队推出的专业代码生成模型,属于Qwen2.5-Coder系列中的轻量级版本。该模型专为代码相关任务优化,在保持较小参数规模的同时…...
掌握msdfgen形状描述语法:从基础几何到复杂路径的完整指南
掌握msdfgen形状描述语法:从基础几何到复杂路径的完整指南 【免费下载链接】msdfgen Multi-channel signed distance field generator 项目地址: https://gitcode.com/gh_mirrors/ms/msdfgen msdfgen是一款强大的多通道有向距离场生成工具,能够将…...
**发散创新:用 Rust实现高性能光线追踪渲染器的核心逻辑与优化技巧**在现代图形学领域,**光线追踪
发散创新:用 Rust 实现高性能光线追踪渲染器的核心逻辑与优化技巧 在现代图形学领域,光线追踪(Ray Tracing) 已成为高质量实时渲染的基石。随着硬件支持(如 NVIDIA RTX)普及,越来越多开发者开始…...
Veo 3.1 AI 视频生成 + 字幕叠加完整实战指南
通过 GCP Vertex AI Veo 3.1 生成短视频,结合 Python moviepy 自动叠加字幕,实现从脚本到成品视频的全自动化流程,适用于 AI 短视频批量生产。 说明:本文基于实际视频生成项目整理,涵盖 Veo 3.1 异步调用、提示词工程、字幕叠加和批量生产方案,去除敏感信息后形成通用化指…...
AI原生前端开发实战手册:从Prompt驱动UI到Autonomous Component,2026大会首发12个可复用工程模式
第一章:AI原生前端开发的范式跃迁 2026奇点智能技术大会(https://ml-summit.org) 传统前端开发以“UI驱动逻辑”为核心,开发者手动编排状态、事件与渲染生命周期;而AI原生前端则将大语言模型(LLM)与客户端运行时深度…...
CEA-Leti 和 CEA-List 已宣布与 Powerchip 半导体制造公司 (PSMC) 合作
合作将利用 PSMC 的 3D 堆叠和中介层技术来集成下一代 AI 设备两家法国旗舰研究机构 CEA-Leti 和 CEA-List 已宣布与台湾代工厂 Powerchip 半导体制造公司 (PSMC) 建立合作关系。该合作将利用 CEA-List 的 RISC-V 设计专业知识和 CEA-Leti 的硅光子学专业知识(包括微…...
告别“看图说话”:Qwen3-VL如何用平方根重加权与时间戳文本,搞定长视频与图文交错文档?
Qwen3-VL技术解析:平方根重加权与时间戳文本如何重塑多模态理解 当一段长达两小时的监控视频需要快速定位关键帧,或是一份百页技术文档中的图表需要即时解读时,传统多模态模型往往陷入"视觉失焦"或"文本过载"的困境。Qwe…...
