随笔分类 -  逆向学习

摘要:学校里的破事终于只剩下考试了,终于有时间接着学了。先复习一下以前学的 在Windows xp中3环函数API进入0环函数,是有两种方法进入的:1.syscall、2.int 在正式进行实验时,先介绍一点东西 _KUSER_SHARED_DATA结构体 共享区,3环和0环都映射的同一块物理页 中断门进 阅读全文
posted @ 2020-12-29 15:41 PYozo_free 阅读(179) 评论(0) 推荐(0)
摘要:最近队里队长给了我一个入队测试题,结果一看就是vm,吓得我赶紧去看了一个vm的例题,看完后,又来看这道题,把我折磨的有点怀疑人生了,目前还没写完,记录下写题的过程 程序分析 首先大致看一下我的分析 __int64 __fastcall main(__int64 a1, char **a2, char 阅读全文
posted @ 2020-12-19 15:07 PYozo_free 阅读(214) 评论(0) 推荐(0)
摘要:总结 心得总结 一个月过去了,11月份一直在努力的刷题,总的来说,提升感觉不是很大,还是一直在模仿着刷题,一碰到新知识就不太会了,代码审计也明白自己不足,可这个月一直想把代码审计过关,但还是没过关,很郁闷,有时候和一些天才相比,我这种普通人确实显得有点愚钝了。不过11月份也不全是坏事,至少堆入门了, 阅读全文
posted @ 2020-12-19 11:56 PYozo_free 阅读(60) 评论(0) 推荐(0)
摘要:CreateRemoteThread 部分源码 push edi ; CreateSuspended lea ecx, [ebp+UserStack] push ecx ; UserStack lea ecx, [ebp+ThreadContext] push ecx ; ThreadContext 阅读全文
posted @ 2020-11-21 19:32 PYozo_free 阅读(430) 评论(0) 推荐(0)
摘要:Trap_Frame结构体 KPCR结构体 nt!_KPCR +0x000 NtTib : _NT_TIB +0x01c SelfPcr : Ptr32 _KPCR +0x020 Prcb : Ptr32 _KPRCB +0x024 Irql : UChar +0x028 IRR : Uint4B 阅读全文
posted @ 2020-11-19 15:30 PYozo_free 阅读(278) 评论(0) 推荐(0)
摘要:源代码 804de88f b923000000 mov ecx,23h ;让ecx存储,023h也就是三环的段描述符 ;RPL为3 804de894 6a30 push 30h 804de896 0fa1 pop fs ;Windows内核有个特殊的基本要求,就是只要CPU在内 ;称为KPCR的数据 阅读全文
posted @ 2020-11-19 15:07 PYozo_free 阅读(393) 评论(0) 推荐(0)
摘要:参考的看雪的一位大佬的https://bbs.pediy.com/thread-259972.htm 此文意义 主要是想自己写病毒分析,并加强逆向分析技术,和反汇编能力,其次该文章会分很多天才会写完,记录每天的分析 逆向过程 先打开ida看了看,这下面有很多错误的,因为一开始静态分析的 进入第一个函 阅读全文
posted @ 2020-11-17 13:17 PYozo_free 阅读(302) 评论(0) 推荐(0)
摘要:分析WriteProcessMemory调用过程 首先咱们先查看kernel32.dll这个库,并找到WriteProcessMemory .text:7C802213 WriteProcessMemory proc near ; DATA XREF: .text:off_7C802654↓o .t 阅读全文
posted @ 2020-11-15 16:17 PYozo_free 阅读(1079) 评论(0) 推荐(0)
摘要:注册驱动 最近看xp内核的时候,竟然要自己注册驱动,在网上简单的搜了一下,发现没什么教程。 后来灵机一动,自己学逆向的,把平时注册驱动的程序给逆一下不就好了吗? 查看壳 好像没什么问题 ida静态分析 简单的看了一些程序自己的函数,发现有Dialogfunc,点进去看看 先来看看这段源码 .text 阅读全文
posted @ 2020-11-14 18:35 PYozo_free 阅读(270) 评论(0) 推荐(0)
摘要:等一会 阅读全文
posted @ 2020-11-12 18:19 PYozo_free 阅读(131) 评论(0) 推荐(0)
摘要:一、0环通信对象 在3环中通信一般是用消息机制(MSG)来进行相互通信的,而0环有IRP可以用来进行通信,并且可以利用这个来与3环通信 不同的调用方式 二、创建设备对象 首先需要创建设备名称 //创建设备名称 UNICODE_STRING Devicename; RtlInitUnicodeStri 阅读全文
posted @ 2020-11-11 14:43 PYozo_free 阅读(306) 评论(0) 推荐(0)
摘要:一、内核空间 高2G内存里的内容都是一样的,低2G内存都是各进程的 二、内核模块 每个驱动程序都是一个模块,称为内核模块,都可以加载到内核中,都遵循PE结构,但本质上讲,任意一个.sys文件与内核文件没有区别 1、DRIVER_OBJECT结构体 每个内核模块都有一个对应的结构体,来描述这个模块在内 阅读全文
posted @ 2020-11-09 14:12 PYozo_free 阅读(295) 评论(0) 推荐(0)
摘要:最近的一场ctf比赛,让我去学习了这个 首先附上我查看的一个很重要的资料 打开ida查看代码 发现主要判断函数再于这个check_login这个函数,然后点进去看看 loc_94E: mov [rbp+var_108], 1 mov [rbp+var_107], 1 mov [rbp+var_106 阅读全文
posted @ 2020-11-07 15:26 PYozo_free 阅读(310) 评论(0) 推荐(0)
摘要:一、未导出函数的使用 WDK说明文档中只包含了内核模块导出的函数,对于未导出的函数,则不能直接使用。 如果要使用未导出的函数,只要自己定义一个函数指针,并且为函数指针提供正确的函数地址就可以使用了。有两种办法都可以获取为导出的函数地址: 特征码搜索 解析内核PDB文件 二、返回值 大部分内核函数的返 阅读全文
posted @ 2020-10-29 16:02 PYozo_free 阅读(180) 评论(0) 推荐(0)
摘要:保护模式阶段测试说明 感谢hambaga师傅的博客 要求 给定一个线性地址,和长度读取内容 这个其实就是造轮子,先咕咕咕了 申请长度为100的DWORD的数组,且每项用该项的地址初始化 // Task_Segment.cpp : Defines the entry point for the con 阅读全文
posted @ 2020-10-29 14:44 PYozo_free 阅读(177) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-10-29 14:43 PYozo_free 阅读(50) 评论(0) 推荐(0)
摘要:invlpg汇编指令用来无效指定线性地址的单个TLB表项无效 阅读全文
posted @ 2020-10-26 19:43 PYozo_free 阅读(174) 评论(0) 推荐(0)
摘要:附:找到pdt:pde最后一个看看是否有物理页 1:)给0线性地址挂上物理页 打开windbg查看cr4 查看0的物理地址,发现没有挂物理页 利用写出代码,打印b的地址,并且把b的物理页也打印出来 将0号地址修改为跟b的相同的物理页上 打印相应地址的值 2:)逆向MnIsAddressValid 源 阅读全文
posted @ 2020-10-24 16:55 PYozo_free 阅读(335) 评论(0) 推荐(0)
摘要:2-9-9-12分页 实验代码 拆分12ff7c 000000 0000 0000 0000001 0010 1111 12f1111 0111 1100 f7c 然后查找 由于是8字节一个了所以乘以8而不是乘以4 在填入偏移,显示的是a,修改其值为100 修改后 在运行程序 知识点 1、其实跟10 阅读全文
posted @ 2020-10-24 15:11 PYozo_free 阅读(178) 评论(0) 推荐(0)
摘要:MmIsAddressValid 作用:用来判断某个线性地址是否被挂了物理页 说人话!!!! 就是说线性地址是否有效 先到windbg看看源码,静态分析一下 入口部分 1 nt!MmIsAddressValid: 2 804e2f46 8bff mov edi,edi 3 804e2f48 55 p 阅读全文
posted @ 2020-10-24 12:32 PYozo_free 阅读(390) 评论(0) 推荐(0)