汇编语言
文章平均质量分 92
pureman_mega
这个作者很懒,什么都没留下…
展开
-
学习 x64 汇编
开发环境:vs 2019 c工程里面 添加asm 文件,执行64位汇编代码。代码做了 点什么:1,通过gs寄存器获取模块基地址2,通过基地址获取导出函数----api 地址3,通过api做点其他的事情参考:1,通过gs 寄存器获取模块基地址https://www.cnblogs.com/aliflycoris/p/5185097.html2,64位汇编 传参 特点 https://blog.csdn.net/weixin_30725315/article/detail...原创 2020-12-15 16:43:13 · 2290 阅读 · 0 评论 -
Eternalblue-2.2.0 shellcode 分析
shellcode 部分支持32和64位系统,在执行开始会进行判断并分发,如下图:3264(这个细节点是看别人博客写的)同样的机器码,在32和64位处理器中解析是不同的指令,以此来区分32和64位系统。可以通过ida分别以32和64位模式打开shellcode来查看。64位shellcode正文部分:000000005BF sub_5BF proc near ; CODE XREF原创 2020-12-09 17:02:59 · 609 阅读 · 0 评论 -
通过插apc 执行cmd
样本文件MD5: 42f43edc9937e4aa5f985773f5ea9daa以下内容取自样本中关于执行cmd 命令的片断,32位系统。大致流程:1传入的参数解析,进行一些判断,是否插入到默认进程等。第一个参数用来保留cmd 结果,第二个cmd 命令 字符串,第三个 bool 型,表示是否保留cmd 结果2通过ZwQuerySystemInformation 遍历进程,如果传入的参数中没有指定ProcessID,则将apc 插到默认的 winlogon.exe中执行;否则,插入到指定..原创 2020-11-01 15:33:36 · 619 阅读 · 0 评论 -
GAPZ bootkit source code(转载)
github 链接:https://github.com/Darkabode/zerokit(作者的观点描述)Short descrWarning: This ancient shit not suitable for studying. Everything here is already outdated in 2010.It is always amusing how analysts from anti-virus companies and some independent re.转载 2020-09-10 10:53:42 · 270 阅读 · 1 评论 -
TinyXPB\loader16.asm
use16 ORG 0x00 ;============================================================================================= ;Hook int 0x13 (Disk Service) and Read the original mbr into 0x7C00 and execute it ;=======================================================.转载 2020-05-12 16:56:03 · 204 阅读 · 0 评论 -
汇编解析pe文件
主要是为了练习一下汇编语言编成和pe文件结构。#include<stdio.h>#include<windows.h>//winnt.hchar *OutputDebug="OutputDebugStringA\0";//length=0x12DWORD KernelBase=0x7c800000;//方便试验,直接用工具读的一个值WORD d...原创 2020-04-08 17:14:58 · 741 阅读 · 0 评论 -
谁调用了我----获取调用者函数
如下图:图中的var_s0变量对应地址ebp,[ebp+4]保存函数返回地址,[ebp+8]是第一个参数。在call sub_xxx这种情况下,返回地址等于当前地址加上5字节。如下图:上面这个应用例子中是想获取ZwLoadDriver(*)更底层一些的实现,从而躲过一些麻烦。下面是应用层的例子:DWORD r_ebp=0;DWORD l_entry=0;void...原创 2020-03-19 22:21:40 · 367 阅读 · 0 评论 -
Turla中的rootkit_fdisk.sys分析(一)
(果然分析不下去了,这个样本涉及的内容太广,我得去补充补充知识再来接着分析了)最近发现这个模块比较有趣,还是个x64上的,正好可以练习一下x64的汇编,写下来有个更好的理解。由于个人能力有限,这个过程可能会持续几个月,或者更长,不知道能不能弄完。下面通过一些汇编片段来学习它的编程思路及技巧。仅供参考,如有错误欢迎指出。1,获取系统信息,函数原型:ULONG64 GetSystemI...原创 2019-08-02 17:30:49 · 369 阅读 · 0 评论 -
MmIsAddressValid()做了些什么
从函数的名称可以看出是判断地址是否有效,下面是反汇编代码和C代码。它主要判断地址是否对齐来确定地址是否有效。nt!MiIsAddressValid:840bcaa8 8bff mov edi,edi840bcaaa 55 push ebp840bcaab 8bec mov ebp,esp840bcaa原创 2018-03-25 12:53:22 · 946 阅读 · 0 评论 -
病毒常用方法之加密
恶意软件为了躲避杀毒软件的扫描会将一些敏感的字符或数据进行加密,来改变原有的样子(特征).下面是一个解密的反汇编和C代码: ... ;这个函数调用时有一个参数压入栈,另外还有两个寄存器的值被使用 ;lea eax,[ebx-4] ebx 长度,从第五个字节开始处理 ;lea edi,[esi+4] esi 数据起始地址,和上面原创 2018-03-11 14:02:51 · 809 阅读 · 0 评论 -
与RKdemo12.sys一起工作的用户模式部分RKSTART.EXE分析
在上一篇里说过这个.exe文件会实现驱动的驻留,那么来重点看一下这吧。 lea eax, [esp+238h+var_210]CODE:00401346 mov edx, ds:off_402008 ;要加载的驱动名CODE:0040134C call原创 2017-12-15 12:25:07 · 170 阅读 · 0 评论 -
汇编语言基础2
1,数据传送指令 mov ebx,12340000h ;将值0x1234000赋给ebx mov eax,[004010000h];将内存地址为0x00401000处的值赋给eax mov eax,ebx ;将ebx里的值赋给eax mov [004010000h],12345678h ;将值(0x12345678)赋给内存地址0x00401000 mov [00401原创 2017-12-18 09:37:14 · 316 阅读 · 0 评论 -
汇编语言基础1
x86是基于Intel8086处理器的小端(little-endian)体系结构(就是先存储低位的字节)。处理器通常可以运行在两种模式下:实模式和保护模式。实模式是指处理器刚通电后只支持16位指令集的状态。保护模式是指处理器支持虚拟内存,分页以及其他的功能状态,也是运行当代操作系统的状态。 寄存器 寄存器是cpu内部的高速存储单元,访问速度比内存快得多,用来存取程序运行中的各种信息。常用的原创 2017-12-13 19:11:11 · 824 阅读 · 0 评论