
ASM
文章平均质量分 78
苏璃
白云黄鹤道人家 一琴一剑一杯茶
展开
-
C# 中间代码与内联汇编
中间代码(IL)是源程序的一种内部表示 举个例子C语言编译一个程序 那么C语言编译器会把代码全部翻译为可以被机器识别的机器指令 同理C#编译器也是一样的 不过它是被C#(CSC)编译为可以被CLR识别的指令 该指令称为中间代码。IL Add: static void Main(string[] args) {原创 2015-06-18 10:53:04 · 6961 阅读 · 0 评论 -
C# 远过程外部调用 LoadLibrary、GetModuleHandle、GetProcAddress、FreeLibrary
本类可以很方便的实现“远过程外部调用”获取、卸载、导入外部对象的动态链接库且包括特俗的获取模块函数,调用“LoadLibrary / 导入动态链接库”到外部对象,可能会被安全软件认定为注入行为,需要注明的是本类代码在x86下编写,且在代码中大量使用了x86 asm / auto,所以尽量以x86平台编译且需要操作的是x86 / 32bit的外部对象 当然本类只作参考与学习 在本类中原创 2015-11-17 10:31:57 · 7100 阅读 · 1 评论 -
Asm 转移指令 / shift instruct
跳转指令分三类:一、无条件跳转: JMP;二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转);三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了.根据标志位跳转的指令:JE ;等于则跳转JNE ;不等于则跳转JZ ;为 0 则跳转JNZ ;不为 0 则跳转JS ;为负则跳转转载 2015-10-30 14:24:04 · 338 阅读 · 0 评论 -
C# API-Hook / x86
API-Hook是拦截或改变API函数执行的结果技术,百度百科上有不少注解 但却是IAT-Hook,与本文的Inline-Hook不是太一至,但是本质作用是相同的 而两种Hook都有各自的优势与劣势、那么下面我们开始了解什么是Inline-Hook它的原理又是如何 当然你可以变通的试试(Mem-Hook)内存挂钩 当然我希望观摩过本帖的开发人员 可以告别EasyHook原创 2015-10-15 21:30:29 · 853 阅读 · 0 评论 -
E COM研究笔记 / 挂接事件
为COM挂接一个回调接口,在如C++,C#中可以调用AtlAdvise或从IConnectionPointContainer挂接(Sink必须具象继承接口的全部成员)但易语言则不同,易语言在COM支持上一直存在缺陷,易语言是一个强类型语言,而“Object / 对象”似乎很类似IDispatch*但似乎又不是 而易语言本身则未提供任何可以具备事件点对点的方法 需要挂接的话着原创 2015-09-14 18:01:09 · 840 阅读 · 1 评论 -
C# ASM
从前天开始到今天编写了一个ASM的类,主要是为了方便C#内嵌或者写CALL代码看起来与易语言的汇编模块差不多对的,我借鉴了一下Super-EC及随风EC中的部分源代码 在MDebug && Visual Studio 2012中获取或附加调试部分代码注:创建一个控制台或窗体项目,成功后Alter+Enter或右键项目选择属性选项然后如上图一般选择生成更改目标平台为x86(必原创 2015-10-01 02:53:02 · 2105 阅读 · 0 评论 -
C# inline-asm / 嵌入x86汇编
C#可不可以嵌入汇编 可以 在我眼中C#作为一个介于中上层语言是不可能不可以置入汇编代码的 为什么会被我认为中上层语言呢 从C#保留指针就可以看出 我知道有很多人一定不会相信C#可以使用汇编代码 不过C#会比较麻烦C#不可以直接内联汇编(inline-hook)准确的说C#只可以使用(auto-asm)动态汇编 这种技术不是C#独有的 易语言、VB、C++ 三种语言都可以 不过动态原创 2015-07-08 11:44:59 · 6830 阅读 · 0 评论 -
EAX、ECX、EDX、EBX寄存器的作用
一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器索引暂存器:SI、DISI:来源索引暂存器,DI:目的索引暂存器堆叠、基底暂存器:SP、BPSP:堆叠指标暂存器,BP:基底指标暂存器EAX、ECX、EDX、EBX:為ax,bx,cx,dx的延伸,各為32位元ESI、EDI、ESP、EBP:為si,di,转载 2015-07-23 18:39:10 · 1860 阅读 · 0 评论 -
ASM 取CPU序列号 / CPUID
获取CPU序列号我知道大概有两种方式一种为ASM另一种为WMI不过今天我们只在C#、C++、E语言上内嵌汇编实现获取CPUID的办法、首先我们先看看运行后的效果图上面是C#嵌入汇编运行后获取到的CPUID 我们在看看易语言上的上面是E语言嵌入汇编后运行的结果 两者输出的值是相同、可以证明嵌入的汇编运行上没有问题、int* GetGPUID(){ __asm {原创 2015-08-02 18:54:05 · 2298 阅读 · 1 评论 -
E 动态汇编 / CALL
原来发布代码到精易论坛时我并没有阐述过代码的一些东西 可能是我比较懒吧不过今天我就来讲讲下面的代码的一些方方面面的东西push ebpmov ebp,espsub esp,0C0hpush ebxpush esipush edilea edi,[ebp-0C0h]mov原创 2015-06-07 14:27:32 · 4435 阅读 · 0 评论 -
C# 远过程调用地址(弥补缺陷)
今天写的这篇文章,倒不如说是弥补C# 远过程外部调用 LoadLibrary、GetModuleHandle、GetProcAddress、FreeLibrary我这篇文章内共享代码的缺点,相信有很多道友即便拿着这个源代码也不知道能做什么因为即便大家知道了 可以获取外部模块函数地址,卸载、导入本地模块、但是还有很多人对Win32编程并不熟悉、当然我们做.NET开发的、一点也不用WI原创 2016-01-11 00:04:19 · 501 阅读 · 0 评论