自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(158)
  • 资源 (9)
  • 收藏
  • 关注

转载 4年前的最佳小说回顾

古代有一小姐,遇到一个上京赶考的穷书生避雨,发现其很有才华后,掏出一些银两,并以身相许,次日小姐垂泪送书生:“君若高中莫负妾身。”书生发誓后走了。小姐让丫环把书生的名字纪录在册,丫头说:“这已经是第五十个书生了!”小姐说:“没办法,总有一个会真的考上的。——2016最佳小说《风投》书生让书童把小姐的名字记下,感叹道:这是第一百个了啊。——2016最佳小说《融资》书生的伴读童子问书生:公子,自从三年前你离家,如今已经睡了九十余名女子了,我们在各大赴京路上往复,难道就不去赶考了吗?书生答:赶考当大官不也

2020-12-22 15:38:17 238

原创 C++ 桌面图标(转载)

#include<windows.h>#include<commctrl.h>#include <stdio.h>typedef struct tagLVITEM64A{ UINT mask; int iItem; int iSubItem; UINT state; UINT stateMask; INT64 pszText; int cchText...

2020-12-04 15:09:00 1036

原创 .Net 5的 Span结构内存分析

假如说有一下程序使用了Span:static void Main(string[] args){Span span = new byte[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };span = span.Slice(5, 2);GC.Collect();Console.WriteLine(span.Length);Console.ReadLine();}分析如下:span数组在内存的存储布局断点到此处,并打印出 rbp 寄存器内容span结构体的地

2020-11-15 12:25:21 258

原创 windbg调试入门(转载)

  好不容易把环境打好了,一定要试试牛刀。我创建了一个极其简单的程序(如下)。让我们期待会有好的结果吧,阿门!  using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Progra...

2020-11-07 11:04:00 150

原创 Ubuntu 安装 Docker (转载)

在Ubuntu中安装Docker和docker的使用1.在Ubuntu中安装Docker更新ubuntu的apt源索引sudo apt-get update安装包允许apt通过HTTPS使用仓库sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ so...

2020-10-31 21:17:00 89

原创 GC析构对象和列表的处理过程

步骤如下:1.CLR 会判断当前对象是否包含析构函数,2.如果包含,则记录对象的地址到所属区域下的析构对象列表中3.在CLR GC的五个阶段的标记阶段,会判断对象是否存活为14.如果不为1,检查对象头中的一直运行析构函数标记是否为15.如果为1,则删除析构对象列表的中的记录6.如果不为1,则把析构对象列表中的记录移动到析构队列或者重要析构队列7.标记析构队列和重要析构队列的对象为存活对象,即为18.等待被析构函数的调用线程调用它9.移除析构队列或者重要析构队列10.下一轮GC的回收**

2020-10-27 12:21:54 143 1

原创 .Net Core CLR 获取跟对象代码的分析

.Net Core CLR GC 的第一步过程就是标记阶段,其余的分别为,标记,计划,压缩,重定位,清扫。五个阶段。首先来看下标记阶段,所谓的标记阶段,就是CLR 会标记存活的对象,以便于不被清扫掉,而造成程序异常。标记的第一步首先是要获取到跟对象,通过跟对象获取到正在使用的对象,然后进行一个标记,所有代码均为C++如下:CLR的GC阶段的标记函数为:void gc_heap::mark_phase (int condemned_gen_number, BOOL mark_only_p){

2020-10-18 19:12:42 136

原创 天地有情尽白发,人间无意了沧桑

从此,我叫八戒天蓬苍老的面容,几根丝丝白发。爱情之折磨人,以至于斯乎?我自有仙子相配,爱你就会变成猪一语成谶,因果循环,报应轮回,屡试不爽。爱上宝儿,就会成为平凡人。位列上神,就会离开宝儿。当天蓬毫不犹豫的选择宝儿的时候,那根月老的牵丝线已经被取出。结局是悲哀的。然而没有悲哀的结局,何来感人的故事?四百八十年后,高家庄,永世不得位列仙班的天蓬戴着破败的斗笠。被惊呼为妖怪...

2020-07-05 13:44:00 275

原创 狼和羊的故事(安徒生新篇)

从前,有一群羊,在草原上很安定的生活着。由于水草丰盛,羊群很快繁殖了大量的小羊。小羊长大了继续繁殖,羊群的羊越来越多。后面来了几只狼,对羊说:附近好多狮子老虎,我们保护你们,你们尽情吃草。羊说,好的,救世主来了。狼不吃草,隔三差五的偷吃一只羊。羊群慢慢的减少了,狼一看不对劲。这样减少下去,后面我们吃什么。就对羊说,你们要多生小羊,我们狼才能更好的的保护你们。羊群一听,觉得也是,于是...

2020-06-28 11:55:00 463

原创 .Net Core CLR GC的浅度分析

.Net Core CLR 的GC分为两个部分,一个是GC的内存分配,另外一个是GC的垃圾回收。这里我们先讲一下垃圾回收。一.垃圾回收的触发条件1.在C#代码中调用 GC.Collection();2.物理内存不足的情况下3.分配量超过分配阈值4.找不到可分配的内存空间在满足了以上四个条件中的任何一个,CLR都会触发GC的垃圾回收,清理托管堆空间释放内存,以便下次使用。二.垃圾回收的...

2020-06-27 01:03:00 102

原创 CLR GC分析

.Net Core CLR 的GC分为两个部分,一个是GC的内存分配,另外一个是GC的垃圾回收。这里我们先讲一下垃圾回收。一.垃圾回收的触发条件1.在C#代码中调用 GC.Collection();2.物理内存不足的情况下3.分配量超过分配阈值4.找不到可分配的内存空间在满足了以上四个条件中的任何一个,CLR都会触发GC的垃圾回收,清理托管堆空间释放内存,以便下次使用。二.垃圾回收的流程1停止其它线程到并且切换到抢占模式(抢占模式不可访问托管堆代码,只可访问非托管)2.重新定位回收的目标代

2020-06-26 23:57:22 485

原创 .net core 的夸代扫描标记card_table的细节分析

夸代扫描,比如说回收短暂代,但是在短暂代当中有一个被一代引用的变量。这个时候可能会造成了这个变量被回收,程序发生不可与之错误。card table 就是为了预防这种情况的一个数组。 int p = 0; int* card_table= &p;card_table[0] = 1;card_table[1] = 2;card_table[2] = 3;card_table表在...

2020-05-21 18:16:00 189

原创 .net core 处理异常的精髓部分

.net core 里面处理异常无论是在linux 或者是widnows都有一个异常入口函数processclrexception()core里面的异常分为用户异常和硬件异常,前者是代码里面引发的异常,后面是CPU寄存器硬件等引发的异常两者处理不同在于VEH扩展,当硬件异常的时候,会调用注册的VEH处理异常。而后进入processclrexception,用户异常则省略了VEH部分直...

2020-05-05 14:08:00 157

原创 .Net Core监控文件改动

static void Main(string[] args) { IFileProvider fileProvider = new PhysicalFileProvider(Environment.CurrentDirectory); Action<object> callback = null; ...

2020-01-16 15:31:00 696

原创 .Net Core Linux 下面的操作

这里以 Ubuntu 8.04版本为例: 1.注册 Microsoft 密钥注册产品存储库安装必需的依赖项 wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-pro...

2020-01-09 22:22:00 122

原创 windebug(转载别人的节选)

  问题一:WinDBG分X86和X64两个版本  如果你用的是32位的WinDBG,那直接打开就行;你如果用的是64位的版本,那么如果调试64位代码也直接打开,如果调试x86的代码,要使用Wow64下的WinDBG.exe。  问题二:确定SOS和CLR的位置和版本  如果安装了Visual Studio的机器,可以打开VS的命令行,输入where sos.dll命令,可以...

2019-11-20 14:02:00 134

原创 .Net PE

// ConsoleApplication26.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <Windows.h>typedef ULONG_PTR TADDR;#define VAL16(x) x#define VAL32(x) x#define DPTR(type) type*#...

2019-11-15 16:01:00 218

原创 wpf 画五角星函数

public void ABC() { var canvas = new Canvas(); Content = canvas; var points = new List<Point>() { new Point(2...

2019-10-11 14:40:00 359

原创 Gradle 编译spring 坑

首先 gradlew.bat其次 import-into-eclipse.bat转换spring-beans文件,将当前目录切换至spring-beans目录,执行命令gradle cleanidea eclipse遇到了一个错误:解决方法:将spring-beans文件夹下面的spring-beans.gradle文件最后三行注释掉去,再在终端执行命令gradle cle...

2019-09-26 10:29:46 659

原创 .Net Core CLR FileFormat Call Method( Include MetaData, Stream, #~)

#include "pch.h"#include <iostream>#include <Windows.h>#define VAL32(x) x#define VAL16(x) x#define DPTR(type) type*typedef DPTR(IMAGE_DOS_HEADER) PTR_IMAGE_DOS_HEADER;typedef ...

2019-08-01 15:41:00 308

原创 Core CLR Host 源码分析(4)

当CLR实例化PEAssembly 的时候,会调用 PEAssemblyHolder pFile(pDomain->BindAssemblySpec(this, fThrowOnFileNotFound, fRaisePrebindEvents, pCallerStackMark));实际上分为三步:Java/Python/Go/.Net讨论交流群:6768173081.通过 ...

2019-05-08 17:14:42 258

原创 Core CLR Host 源码分析(三)

接上一篇,Core CLR利用LoadDomainAssembly加载程序集,并且运用了.net 或者Java里面的全局注入形式来操作程序集的生成和运作具体代码如下:Java/Python/Go/.Net讨论交流群:6768173081.首先会获取到 AppDomain的实例2.获取到ICLRPrivBinder的实例,这个ICLRPrivBinder可以利用assemblyspec.S...

2019-04-04 16:18:39 422 1

原创 Core CLR Host源码分析 (二)

废话不多说,直接上源码:1.在托管程序集里面执行方法HRESULT CorHost2::ExecuteAssembly(DWORD dwAppDomainId,//通过CreateAppDomainWithManager创造的domainid LPCWSTR pwzAssemblyPath,//要托管的...

2019-03-28 16:39:19 259

原创 Core CLR Host 源码分析(一)

Core CLR Host 源码简单分析在定制 CLR Host的时候,可以通过调用如下代码,来获取当前需要被宿主的程序调用入口:Java/Python/Go/.Net讨论交流群:676817308hr = Host->CreateDelegate(domainId,L"Main,Version=1.0.0.0", L"Main.Program", // Target man...

2019-03-25 17:00:00 563

原创 Core CLR 自定义的Host官方推荐的一种形式(第一种)

Core CLR 自定义的Host官方推荐的一种形式(第一种) .Net Core CLR提供两种Host API访问 托管代码的形式,按照微软官方的说法,一种是通过CoreClr.DLL来直接调用托管生成的DLL程序集,另外一种是通过CoreClr里面的C导出函数GetCLRRuntimeHost获取到IID_ICLRRuntimeHost4然后...

2019-03-21 15:26:00 396

原创 编写自定义 .NET Core 主机以从本机代码控制 .NET 运行时

自定义 .Net Core 主机运行.Net Core代码,以及控制运行时运行状态,是在.Net Core 高级运行环境以及定制.Net Host ,CLR 等必不可少的。注意点:1.必须以 x64形式 Debug程序,否则loadlibrary 运行之后为零2.所有的路径都必须放在(Product\Windows_NT.x64.Debug)下面,因为程序要加载默认DLL,缺少DLL将...

2019-03-13 16:48:09 648

原创 C# 二维码的生成

C# 二维码的生成 nuget 搜索qrcodenet,然后选择下载gma.qrcodenetpublic partial class Form1 : Form { public Form1() { InitializeComponent(); } ...

2019-01-17 14:16:00 241

原创 Common Language Runtime(CLR)C++分配堆段小对象叙述

通常来说,内存中的划归为CLR的堆,在CLR中被分两个对象,分别为小对象和大对象,小对象包含了三代,分别为0代,1代,2代,大对象只有一个代就是3代。CLR分配内存的时候,首先尝试从自由列表(a_fit_free_list_p)分配,如果没有成功,则从堆段中分配。代码如下:BOOL gc_heap::a_fit_free_list_p (int gen_number, ...

2018-12-29 17:17:01 295

原创 .Net Core核心监听模块LibUv

这几天发现,.Net Core核心中的核心,也就是作为服务器的监听部分,居然用的是Node.Js的LibUv。.Net Core 作为微软最新的一款开源技术栈,其最大的创新就是用KestrelHtppServer构建了自己的专属服务器,取代了传统的IIS作为服务器,也是为了对抗Java Tomcat ,Apache的利器。这款KestrelHtppServer的核心正是 LibUv。在.Net...

2018-12-15 20:42:46 1565 1

原创 github 入门

github 入门 生成 秘匙:ssh-keygen-t rsa-C"your_email@youremail.com" 复制id_rsa.pub 里面所有内容到 github 的setting-》 new ssh 里面 然后Add ssh -T "你的邮箱",查看SSH是否设置成功 git config -...

2018-11-17 14:51:00 141

原创 Spring ASM 汇编包:Org.SpringFrameWork.ASM

    在Org.SpringFrameWork.ASM这个包里面,有个类ClassReader,有个方法readclass ,后者主要功能是把流转换成16进制的Byte    代码如下:    private static byte[] readClass(final InputStream is, boolean close)            throws IOExceptio...

2018-11-14 17:01:01 1769

原创 Spring 的限量

    最近研究发现    Spring属性不能超过 2的8次方减1    Spring类的 常量池长两个数 不能超过 2的8次方减1    Spring接口,字段,方法的个数不能超过 2的8次方减1   假如说超过了,字节码会移位,导致不能输出正确的结果,尤其是在使用 @Componet, @Services注解的时候  外加Compont-Scan XML 配置的文件。...

2018-11-08 17:48:05 197

原创 Spring 最简单的注入以及原理分析

spring 是直接读取字节码解析上面的注解,只要是配置了@compponent ,@service注解的类,都会在spring 被解析和实例化,后面可以直接用Context来获取类实例操作。通过配置文件 component-scan 和 在类上注解Component来实现最简单配置包名为: Com.Cn,Bing配置文件Beans.xml :    &lt;?xml versio...

2018-11-07 17:16:29 272

原创 Asp.Net MVC Mobile移动端开发小叙

    Asp.Net MVC 从第四版开始就支持移动端了。通过设置HttpContext.Cahce和HttpContext.Items来调整需要输出设别的现实模式,通过DisplayModel自动识别当前设备是PC端还是Mobile端。PC意是指电脑端,Mobile可以是安卓,塞班,苹果或者已经被淘汰的WinPhone.    当调用ViewResultBase的ExecuteResult...

2018-08-11 17:11:01 4054 2

原创 Asp.Net MVC SingleServiceResolver类剖析

Asp.Net MVC SingleServiceResolver类剖析 SingleServiceResolver一般用于类工厂创建和注入点接口留白。类工厂创建比如Controller控制依赖于此类的创建,注入点留白实质上是依赖注入所对外预留的接口。 以第二个特性为例。 在激活Controller的时...

2018-06-22 17:20:00 171

原创 Asp.Net MVC 高级特性(附带源码剖析)

Asp.Net MVC 高级特性(附带源码剖析) 1. 程序入口(MvcHandler,RouteHandler,HttpModule) 2.异步类包(静态类AsyncResultWrapper),开启整个MVC异步循环 3.Aggregate递归链(构建AOP模式筛选器) 4.De...

2018-06-22 17:10:00 3362

原创 Asp.Net MVC HttpPost用法

Asp.Net MVC HttpPost用法 一个Action只能用一个http 特性,例如:HttpPost 不能与HttpGet 或者多个HttpPost重复使用,否则会出错 也可以用[AcceptVerbs("put","get","post")]来表示一个Action可以共用多个请求。只要是包含...

2018-02-02 18:26:00 1768

原创 HttpPost特性剖析

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]    public abstract class ActionMethodSelectorAttribute : Attribute    {    }    [AttributeUsage(Attri

2018-02-01 10:22:53 1096

原创 IOC 自定义的ControllerFactory

新建一个类,名字为:MyControllerFactorypublic class MyControllerFactory:IControllerFactory{ private static List<Type> controllerTypes = new List<Type>(); static MyControllerFactory() { foreac

2017-12-27 15:51:03 315

原创 .Net MVC 里面的核心文件Global.asax运行原理分析

这个 Global.asax文件是MVC里面的起始文件,它不同于其它文件比如,M层,V层和V层。他是一个独立的可配置的文件。 因为.Net MVC把前后端完全分离,极度抽象的一个框架。或许导致了很多从WebForm转过来的不适应。Global文件就是此类。 它与MVC里面的筛选器,控制器类工程(controllerFactory)的交互式怎么做大的呢? 实际上在System.Web命名空

2017-12-22 16:44:32 1603

hosting.zip

.net core 宿主程式,可以用这个来定制runtime 运行时,以及做一些其他tpalist 等动作

2019-11-22

MSCOREE.H CoreClr.DLL 的头文件

CoreClr.DLL的库头文件,主要用于自定制CoreCLR host主机

2019-03-26

编译好的CoreClrdll

利用python,cmake,powershell编译好的coreclr.dll,可以作为.net core 程序的宿主,自定制主机文件

2019-03-26

Java Spring MVC 简单的例子

Spring MVC 入门的简单例子,适合新手学习和研究,简单易懂。

2017-11-12

wondows 程序设计 MFC源码

windows MFC 框架全面剖析和TLS系统的详细运用

2014-01-16

拦截记事本[钩子]

钩子,DLL,进程注入,示例拦截记事本,调用C++ DLL

2013-06-25

webbrowser 仿制 天涯社区:国际观察版(未完)

仿制国际观察版本,提供搜索,发帖扥功能齐全。

2013-01-15

DLL注入

c# 整合c++远程注入 api重写等 记事本应用实例等 是值得一看的小工具

2012-11-09

c# dll注入钩子(全局钩子)

c++ 独立dll钩子,子线程映射,地址保存,api标题头重写。 c#调用从c++ dll挂钩程序,包括计算器,记事本等简单例题描述和功能实现。

2012-06-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除