看雪CTF
第二题 子鼠开天
直接打开ida进行分析
大概我们知道了基本密钥的长度64,主要函数sub_401380
目测分成了三个算法等等,用findkey看了一下
具有tea和ase算法,4010F0为aes算法,401190为tea算法
401000:
主要是把我们输入的密码变成内存中的数据
...
空指针
gatesXgame
1 upx
直接百度得到脱壳机
2 花指令
研究了一下发现模式固定=.=,直接010editor替换即可
1234567891011In [2]: asm('jmp $+5')Out[2]: '\xeb\x03'In [3]: asm('jmp $+6')Out[3]: '\x ...
内存中操作字符串
内存中操作字符串
字符串本质上就是一段内存
CHAR* (字符指针类型) WCHAR* (wchar_t所能表示的字符数远超char型)ANSI_STRING UNICODE_STRING
ANSI_STRING可以看成是CHAR* 的安全性扩展,UNICODE_STRING 可以看成是 WCHAR ...
内核中操作文件
内核里操作文件
RING0 操作文件和 RING3 操作文件在流程上没什么大的区别,也是“获得文件句柄->读/ 写/删/改->关闭文件句柄”的模式。当然了,只能用内核 API,不能用 WIN32API
假设我们要读写一个文件,无论在 RING3 调用 ReadFile,还是在 RING0 ...
内核中使用内存
内核中使用内存
c语言小知识:
https://zhuanlan.zhihu.com/p/87975119
https://zhuanlan.zhihu.com/p/86707793
https://zhuanlan.zhihu.com/p/55768830
https://zhuanlan.zhi ...
驱动程序与应用程序通讯
驱动程序与应用程序通信
鼠标选中项目名字,按下ctrl+shift+A
1.DriverEntry 就是驱动的 main 函数,驱动加载后会从 DriverEntry 开始执行。2.驱动类似 DLL,可以提供接口给应用 程序调用,不过以导出函数的方式,而是用一套专门的通信函数 DeviceIoCo ...
汇编基础
汇编基础
汇编指令集
x86/x64
ARM
MIPS
常用的汇编指令
运算指令
数据转移指令
跳转指令
栈操作指令
x86寄存器
ARM寄存器
寄存器传参和栈传参
010editer
Template的语法类似于C结构体,可以自己直接编写并加载,且支持基本的C语言语法。
ida
ida的快 ...
HGAME-2020
Rev
advance
base64的变种,直接套用脚本了
1234567891011121314151617181920#!/usr/bin/pythonimport base64base_now="abcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJ ...
python-bytecode
python-bytecode
1官方文档:https://docs.python.org/2/library/dis.html
栈基本操作
TOS
TOS1
TOS2
…
LOAD_NAME
压栈
1234LOAD_GLOBAL:全局变量LOAD_FAST:局部变量 ...
hexo发布文章参数设置-备忘
可使用==坚果云==备份
插入本地图片的时候一定要用==/==
例如:
1![Page Front-matter](2020-1-12/front.png)
1. 发布设置:
在博客主目录的_config.yml文件中。
发布命令
1hexo new [文章名]
2. front-matter ...