在 C/C++ 中实现委托(delegate)

  相信使用过C#语言的人们,对于委托应该是记忆深刻,委托具有很多不错的特性,但最令人感到兴奋的是它可以简化很多复杂的开发同时具有低耦合与对象闭包的特性。    委托在C/C++中可以解决最直观的就有问题,一个是相同代码签名的成员函数与全局函数可以被一个委托调用的问题,在C/C++语言中我们在不...

2019-02-05 13:18:09

阅读数 56

评论数 0

dotNET 高阶反射(RTTI):.NET 程序集反编译函数为 IL 代码

  我们知道在 “反射” 的应用中是可以在运行时 “动态的即时编译IL”(.NET Emit ≈≈≈ C/C++ __emit),那么既然可以即时编译,自然可以逆向,但这是属于 “高阶” 反射方面的内容,基本的说任何只要是托管类型的程式,都是可以在运行时IL逆转的,类似 JavaScript 语言...

2018-11-30 16:53:26

阅读数 233

评论数 0

C/C++ setjmp 与 longjmp 函数的实现

  在 C/C++ 语言函数库中提供了一组用于在线程内 “长条转” 的函数,它是大多数 C/C++ 协程 “Coroutine” 库实现的核心函数,当然C语言的异常处理大多也皆是此方式实现的。   在 x64 环境中 longjmp 还是只允许 int 传参,当然这无法在 x64 平台表示一个有...

2018-11-23 12:42:50

阅读数 130

评论数 0

C/C++ shared_ptr 的实现

  shared_ptr(共享指针)在STA(单线程)的场景并没有太多的意义,而且它还会浪费一些内存与处理器效能,它的价值并不是体现在STA环境下的,在STA场景内,一个对象在“函数调用链”之间的传递形式为“自上向下 (A -> B -> C)”,约定对...

2018-11-19 15:24:49

阅读数 100

评论数 0

C/C++ nvm::collections::List class -- shared

usage #include "object.h" #include "collections/HashSet.h" #include "collections/Dictionary.h&quot...

2018-11-13 10:36:18

阅读数 51

评论数 0

C/C++ 替换编译器CXX内存分配释放的实现(new & delete)

  C/C++ 的 new 调用 “::operator new” 函数进行内存分配,delete 调用 “::operator delete” 函数,但我们现在要做的是在不影响应用代码前提下替换其 “C/C++” 内存的分配与释放。   我们先琢磨大概有哪些实现,很多人们可能会考虑到通过 “i...

2018-11-06 11:19:31

阅读数 46

评论数 0

C/C++ nvm::collections::HashSet class -- shared

usage  #include "object.h" #include "collections/HashSet.h" #include "collections/Dictionary.h&quo...

2018-11-05 11:14:38

阅读数 44

评论数 0

C/C++ nvm::threading::Interlocked class -- shared

usage  /* usage */ #include <stdio.h> #include "nvm.h" #include "threading/Interlocked.h&q...

2018-11-01 15:43:38

阅读数 36

评论数 0

ARM 初步尝试

ARM似是栈过程处理但又不全是,总之我初步尝试的映像并不是太友好,另外本文内容可能具有一些错误,欢迎各位大佬指点一二,ARM具有(R0~R15)个寄存器,例在“ARM-thumb”中规定以下。 【r0~r3】传入参数 【r4~r11】局部变量 【r12】IP 暂存器 【r13】SP 栈指针 【r1...

2018-10-30 11:58:48

阅读数 80

评论数 0

严格的C风格字符串 Unicode To UTF-8 的实现(C#、JavaScript)

  本文是关于  Unicode 也就是 LPWSTR 转换成 UTF-8 的实现,在 Win32k 平台中我们可以借助 “MultiByteToWideChar / WideCharToMultiByte”【核心编程】两个函数进行多字节与宽字节字符串进行转换【PS:A2W / W2A 无法转换,...

2018-10-19 10:51:53

阅读数 65

评论数 0

.NET 探索委托调用函数的过程

    从汇编的角度上看委托的调用不得不说是一件稍稍有趣的事情,想想我们常常的利用委托调用一个函数,但是我们不能连委托是怎么调用的都弄不明白,这样说出去是很丢脸的不是儿,何况这也不是什么好复杂的事儿,当然不同的 .NET/CLR 之间委托的调用过程可能会有差异,但大体应该是差不多的。     我...

2018-10-15 14:27:32

阅读数 290

评论数 1

利用大漠插件编写的 “楚留香手游珍宝阁” 购买小精灵

   最近一段时间又氪又肝网易的 “楚留香”,当然的确我现在已经没有太多玩下去的动力了,不是还有一帮耍的不错的早就撤了,网易真的把我恶心疼了,另外网易对于外挂的打击真的让人感到可笑,这游戏各种脚本外挂横行,然而网易并不会进行真正的封禁处罚,脚本根本就不会管,任何事情只要交钱就能解决任何问题,让人看...

2018-10-14 17:27:21

阅读数 359

评论数 0

C/C++ Mono 加载内存中的 .NET Assembly Image To AppDomain

  我们都知道 “Unity3D-csharp” 可以把 .NET 程序打包为一个加密过后的程序集,但是我们不可在未解密之前的情况下加载这个程序集,但是解密以后的程序集是存放于内中的。   似可通过 “mono_image_open_from_data”、“mono_image_open_fro...

2018-10-13 21:22:02

阅读数 212

评论数 0

C/C++ Mono 虚拟机运行一个可执行的 .NET Assembly

    本文是嵌入 Mono 虚拟机中一片基础的启蒙篇幅,它影响到后期对于描述 Mono 虚拟机引擎嵌入应用方面的内容,另外本文建议读者至少对 .NET 是什么有一个清晰的认识。    参考:     Mono API Documentation http://docs.go-mono.com...

2018-10-09 13:29:57

阅读数 287

评论数 0

关于最近网上谣言传的很凶的 “太吾绘卷” 游戏源代码的问题。

    这两天吵的挺厉害的,我本人觉得喜欢这类题材的人们也可以去支持一下这个游戏,但是有一点恶意的抨击别人的代码写得乱,我感到真的没必要,先想想你自己写的怎么样再来说吧。    当然我这不是为 “太吾绘卷” 洗白,这跟我没关系(不是一起的),但是我说过我很厌恶装逼侠,它们都令我都有一点点语言歧...

2018-09-29 14:00:44

阅读数 7068

评论数 5

.NET 探索函数栈的一些问题

    本文主要目的是探索栈上的一些问题,这些问题虽然细微但值得重视,下面本文将列出一些不同的情况,它们可能会发生不同性质的问题。         int n1 = 0x7A;         int n2 = 0x8A;         long* p = (long*)&a...

2018-09-20 22:04:37

阅读数 68

评论数 0

C# 托管指针

    人们总说 C# 没有指针?但,这是真的?答案是否定的!我个体喜欢贴近 “指针” 或者说是 “地址标识符” 编程,这会令人感到不尽的美妙,让人感到不至离被驾驭死物(计算机)太过遥远,C# 之中有哪些指针呢?从语法层面只有原生指针,但是托管指针就真的不存在了?答案是否定的,我们天天都在接触它只...

2018-09-11 17:40:16

阅读数 391

评论数 0

ROP_chains demo code No.1

    gadgets 为小装置它代表着链上所需要的各个组成部分,ROP_chains 是利用栈与 RETN 的特性工作的,但有一点就是说用于攻击目的 rop_chains 里面的各个小装置,攻击者会想办法的从各个版本的操作系统已知公共的DLL库中提出来(指向代码的公共基址几乎是等同的),这个东西...

2018-09-10 18:29:03

阅读数 70

评论数 0

一个很简单的基于栈式过程虚拟机的实现,它运行目标平台【x86】的原生代码。

    本文提供的 “栈式过程虚拟机” 的实现,挂在本人的 github 上面,对想要深入了解 “栈式过程虚拟机” 的人,它或许可以起到一个不错的作用,但是本人建议一般性了解就可以了,另外顺带一提:如果你想要依靠它维持生活,在咋们国家是不可能不现实的,到时候你就只有 “多冷的隆冬 恨啊啊啊 在东北...

2018-09-06 18:27:59

阅读数 230

评论数 2

小实验:PUSH到栈但不POP是否会引发错误或泄漏

    一个有趣的小实验,它将告诉我们PUSH到栈但不POP会不会发生错误或栈泄漏,本文只附一张运行结果图简单说说,剩下就靠各位自行试验领悟。     看上去似乎很有趣的~是吧,其实这么一个小测试你就想明白很多东西,例:栈的工作行为,任何程序都具有相应的工作栈【计算堆栈】,纵然是 “基于寄存...

2018-09-03 15:21:57

阅读数 47

评论数 0

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