初步的看一下C#窗体程序的直接反汇编代码
C#基本窗体程序;
进入反汇编查看;
看一下把字符串赋给文本框的这段反汇编;
大体的阅读一下,以略懂汇编的人来看,基本含义:
ebp寄存器的值减去一个值,取出此偏移地址的值,赋给eax;
eax寄存器的值,加上一个值,取出此偏移地址的dword,赋给ecx;
取数据段某处的一个值,放入edx;
取出以ecx寄存器的值为偏移处的dword,放入eax;
eax寄存器的值,再加上一个值,取出此偏移处的dword,又放入eax;
调用以eax的值为偏移处的函数;
看上去很绕,最后eax寄存器的值是啥我也不知道;
字符串是放在栈(ebp所指),或是数据段(ds),汇编不熟悉不了解;
最后调用的地址处,莫非是Win32的SetDlgItemText类似函数,文本框句柄在哪里?这些都是问题;
复习一下32位寄存器的基本用法;
esp是栈指针,ebp只是存取某时刻的esp;
EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器。
EBX 是"基地址"(base)寄存器, 在内存寻址时存放基地址。
ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。
EDX 则总是被用来放整数除法产生的余数。
加方括号 [ ] 表示一种间接的取操作数方式,有点类似于C语言中的指针概念;
ECX在这里应该也没有做为计数寄存器使用;
这段代码和手写的Win32汇编设置文本框值完全不同;
自己写Win32汇编设置文本框值的程序在,
Win32汇编获取和设置文本框的内容_bcbobo21cn的专栏-CSDN博客_win32设置文本框内容
总之这段反汇编看上去比花指令还花; 肯定是微软为了防止人跟踪进入dNet虚拟机的内部、了解到其设计机制,而搞了一些东西;
初步的看一下C#窗体程序的直接反汇编代码相关推荐
- 数据库实验 图书管理系统(使用SQLsever,附C#窗体程序源码)
写一个可以登录注册包括管理员身份.读者身份在内的,可以管理(增删改查)图书.借阅信息,可以借书还书的图书管理系统 使用数据库:SQL sever 使用语言:C# 使用IDE:Visual Studio ...
- C#窗体程序随电脑分辨率自动调整大小
添加类方法,代码如下: public static void setTag(Control cons){foreach (Control con in cons.Controls){con.Tag = ...
- java窗体中添加图片_在java窗体程序中添加图片的方法
在java窗体程序中添加图片的方法 发布时间:2020-06-16 11:24:13 来源:亿速云 阅读:148 作者:Leah 这篇文章主要为大家详细介绍了在java窗体程序中添加图片的方法,图文详 ...
- java swing开发窗体程序开发(一)GUI编程
Java SWing就是java提供的一个类库专门用于开发窗体程序的,相对于C#的winform,java swing的开发要比C#更加麻烦,他不像C#拥有可视化的界面编辑工具 而是需要像QT一样纯代 ...
- 如何快速看懂一个大型程序
为什么以及要有的态度: 不要消极的去阅读别人的代码,而是带着挖掘宝藏的精神去寻找别人的代码中精华的部分,找出其中好的架构为我所用. 大体思路: (1)忽略细节,先前不要关注分支(支线).不重要的功能, ...
- C++ Windows 窗体程序入门 - 1.你的第亿个窗体程序
〇.前言-------------------- + 学Windows窗体已经有一段时日了,奈何没有什么浅显易懂(&便宜!!)的书籍 , 就想来 , 算是记笔记吧 , 顺便还能给你们总结一些经 ...
- VS2010 win32项目windows窗体程序 向导生成代码解析
目录: 1.Win32项目的windows窗体程序的向导生成了如下代码 2.手工生成代码如下 3.当消息队列中没有消息需要处理,我们可以利用这段时间处理我们自己的任务 1.Win32项目的window ...
- VS C#窗体程序未能找到Form1.resx文件解决方法
新建另一C#窗体程序,在窗体上任意添加一个控件,在解决方案视图下可以看到多了一个"Form1.resx"文件,在工程文件目录中找到它,复制到缺失Form1.resx ...
- c语言写贪吃蛇什么水平_学了一些C语言,也不知道自己学到什么程度,自己想写个贪吃蛇但是写不出来,想看懂下面这个程序,求解释...
已结贴√ 问题点数:20 回复次数:3 学了一些C语言,也不知道自己学到什么程度,自己想写个贪吃蛇但是写不出来,想看懂下面这个程序,求解释 #include//基本库 #include//系统库 #i ...
最新文章
- leetcode算法题--二叉搜索树的最近公共祖先
- PostgreSQL 客户端乱码问题
- leetcode 73 矩阵置零 C++ 两种解法
- 教你在Ubuntu上体验Mac风格
- 并发编程---ConcurrentHashMap源码解析
- html中如何多列布局,CSS3 多列布局
- 课堂练习 组合数据练习
- 深入理解Scala 标识符,命名和域
- 前端基础知识体系之项目经验篇
- 黑苹果以太网网卡已安装 无法上网
- 安卓客户端使用矢量图
- java 修改pdf文档的页面的大小
- 4kvideodownloader视频下载工具
- 批处理命令更改Windows鼠标滑轮滚动方向
- Python爬虫包 BeautifulSoup 递归抓取
- Python练手项目:玩转魔方
- C语言 | getchar()、getche()、getch()的区别?
- Bonobo.Git.Server 简单使用
- 什么是数据结构,都有哪些数据结构
- 设计模式(十)----策略模式