[原创]琢磨一种察看/修改C#堆中东西的方法(随笔)

非正式的、不完善的、写着玩的、可能会引起.Net退出的方法:

namespace cscon
...{
    class root
    ...{
        public int i;
        public int j;

        /**//*public virtual int nuller(int a,int b)
        {
            return a + b;
        }*/
    }

    class Program
    ...{
        static void Main(string[] args)
        ...{
            unsafe
            ...{
                root rt = new root();
                rt.i = 999;
                rt.j = 888;
                fixed (int* i = &rt.i)
                ...{
                    byte* b = (byte*)i;
                    b += 4;
                    int* j = (int*)b;
                    Console.WriteLine("rt.i:{0},rt.j:{1}", rt.i, rt.j);

                    Console.WriteLine("i:addr|{0:x}:{1}", (uint)i, *i);
                    Console.WriteLine("i:addr|{0:x}:{1}", (uint)j, *j);
                    (*j) = 5555;
                    Console.WriteLine("i:addr|{0:x}:{1}", (uint)j, *j);
                    Console.WriteLine("rt.i:{0},rt.j:{1}", rt.i, rt.j);

                }
            }
            Console.Read();
        }
    }
}

 

时间: 2024-09-02 09:46:15

[原创]琢磨一种察看/修改C#堆中东西的方法(随笔)的相关文章

SQL Server简单模式下误删除堆表记录恢复方法(绕过页眉校验)_MsSql

首先,我需要强调下,这篇主旨是揭示堆表的删除记录找回的原理,我所考虑的方面并不适用于每个人的每种情况,望大家见谅~ 很多朋友认为数据库在简单模式下,堆表误删除一条记录,是无法找回的,因为没有日志记录.其实不然,某种意义上是可以找回的,因为堆表在删除记录时,只更改了行偏移,实际数据没有被物理删除,所以利用这点,测试了下恢复数据,果然成功了,但是还有点问题没有研究出结果:如果不关闭页面校验,除了更改偏移量,删除数据时还需要更改页眉,这点还没时间去琢磨,所以恢复数据时还要能推断出页眉的16进制对应关系

java内存管理(堆、栈、方法区)

java内存管理 简介 首先我们要了解我们为什么要学习java虚拟机的内存管理,不是java的gc垃圾回收机制都帮我们释放了内存了吗?但是在写程序的过程中却也往往因为不懂内存管理而造成了一些不容易察觉到的内存问题,并且在内存问题出现的时候,也不能很快的定位并解决.因此,了解并掌握Java的内存管理是我们必须要做的是事,也只有这样才能写出更好的程序,更好地优化程序的性能. 概述 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁

word中怎么修改公式编辑器中的字体格式?

  word中怎么修改公式编辑器中的字体格式?            1.打开word2003软件,如图所示; 注意:采用word2007或是wps时,界面可能会不一样,因为我采用的是经典的界面,现在都采用另一种风格了. 2.插入一个公式,采用快捷的工具栏加入. 3.输入公式,公式如下图,由图中可以看出,在右侧的格式有些乱,有的是斜体,而有的不是斜体,看起来很不舒服; 4.选中等号右侧的公式,单击"样式",在下拉菜单中任意选中一个样式比如"函数"; 5.查看结果,接

注册表被修改的原因分析和解决方法

注册表被修改的原因分析和解决方法: 其实,该恶意网页是含有有害代码的ActiveX网页文件,这些广告信息的出现是因为浏览者的注册表被恶意更改的结果. 1.IE默认连接首页被修改 IE浏览器上方的标题栏被改成"欢迎访问******网站"的样式,这是最常见的篡改手段,受害者众多. 受到更改的注册表项目为: HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerMainStart Page HKEY_CURRENT_USERSoftwareM

几种常见的屏蔽电脑USB接口的方法

  如何控制电脑USB接口? USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.USB接口即插即用和热插拔功能.USB接口可连接127种外设,如鼠标和键盘等.它已成为当今电脑与大量智能设备的必配接口. 下面,我们就来看看几种常见的屏蔽电脑USB接口的方法. 方法一:修改BIOS屏蔽USB控制器 通过修改BIOS设置,可以直接屏蔽主板上的USB控制器,这个方法几乎适用于所有计算 机.这里笔者以目前使用最为广泛的Award BIOS为例进行说明.启动计算机时按键盘的Del键进入BIOS设

一种实现Win32消息处理处理函数的新方法 - 基于Thunk实现的类成员消息处理函数

Windows是一个消息驱动的操作系统,在系统中发生的所有消息均需要通过消息处理过程(或叫窗口过程)进行处理.由于C++给我们在程序设计中带来更多的灵活性(如继承.重载.多态等),所以我们都希望能够使用C++的类来封装Windows中的窗口过程函数,但是Windows规定了窗口过程函数必须定义为一个全局函数,也就是说需要使用面向过程的方法来实现,为了使用面向对象的技术来实现消息处理,我们必须另辟它径.目前我们在网络上见得比较多的方式是使用Thunk将即将传递给窗口过程的第一个参数(HWND hW

谈谈23种设计模式在Android项目中的应用

前言 本文将结合实际谈谈23种设计模式,每种设计模式涉及 定义:抽象化的定义与通俗的描述,尽量说明清楚其含义与应用场景 示例:如果项目中有使用过该模式,则会给出项目中的代码,否则会给出尽可能简单好理解的java代码 Android:该设计模式在Android源码框架中哪些地方有使用到 重构:项目中是否存在可以用该模式进行重构的地方,如果有会给出重构前与重构后的代码或者思路 用这种方式进行介绍设计模式,旨在结合每天都在接触的Android实际项目开发更好地理解设计模式,拉近与设计模式的距离,同时在

fonts-android开发中修改应用程序中的字体

问题描述 android开发中修改应用程序中的字体 在代码中修改字体,我知道有这么一种方法 AssetManager mgr=getAssets();//得到AssetManager Typeface tf=Typeface.createFromAsset(mgr, "fonts/cube.ttf");//根据路径得到Typeface字体 textView.setTypeface(tf);//设置字体 但是这样修改字体的话会增加整个项目打包后的大小吧,我的思路是通过引导用户去在线下载想

【数据架构改造必读】一种零业务影响下的大表重构方法

目录 快速改造表方法 实例   随着信息技术的发展,业务的可用性要求越来越高,在高可用的环境中,如果需要改变表的定义是比较棘手的,特别是对于7x24的系统,需要停止业务来改造表定义的代价是非常大的.ORACLE提供的基本语法可以修改表的基本属性,但对于普通表.分区表.索引组织表之间的转换,是无法完成的,那么有哪些方法可以 转换呢?笔者在此给读者一个方法. Part 1    方法介绍  在ORACLE优化过程中,经常会遇到普通表日积月累之后变大了,DBA一般建议改造成分区表,常用的改造方法.步骤