随笔分类 - ShellCode
包括ring3 ShellCode 以及Ring0 ShellCode
摘要:以x64dbg.exe调试x64dbg.exe为例. 汇编代码为如下. ``` mov rax, qword ptr gs:[0x0000000000000060] mov rax, qword ptr ds:[rax+0x10] ``` 二进制硬编码如下 ``` "\x65\x48\x8B\x04
阅读全文
摘要:在动态调试过程中,有时候要给一个地址进行nop. (nop代表无意义指令,可以被cpu执行.执行之后不会影响寄存器,堆栈,以及寄存器) nop的机器码是0x90 而在后面的调试器中,针对nop指令又作了 "升级" 以前想要 nop五个字节.那就要写五个字节. 现在有种新的方式(通过逆向的来.发现的多
阅读全文
摘要:算是一个总结 看雪文章也有写。这里做个备份。 链接: ShellCode定位EIP 第一种类型方式1: [SECTION .text] BITS 32 global _start _start: fldz fnstenv [esp-0x0C] pop eax add al, 0x07 第一种类型方式
阅读全文
摘要:x64下Hash获取Kernel32基地址 一丶 工程代码 代码中包含x64Asm 其中函数也是可以算hash的.自己写asm遍历导出表即可. 1.主要代码 extern "C" long long _readgsqword(long long ReadValue); extern "C" void
阅读全文
摘要:ShellCode之寻找Debug下真实函数地址 一丶简介与原理 在Debug模式下,函数地址与真实函数地址不一致. 这导致我们在写类似于ShellCode的代码的时候会产生问题.比如远程线程代码注入. 产生这一原因是因为在Debug模式下,我们的函数地址是一层跳转表.是编译器维护的.名字叫做I
阅读全文
摘要:ShellCode 如下 strstr ShellCode实现 1.函数原型 char* Mystrstr(const char* SrcStrPtr, const char* SubStrPtr) { int nCount; if (*SubStrPtr) //判断寻找的SubStr是否为空. {
阅读全文
摘要:[toc] 一丶第一种方式 在实际工作中会遇到很多strlen. 这里针对strlen函数做一下代码还原. 并且讲解其原理 高级代码如下: 请不要关注scanf_s 为了编译器能够正确编译加上自己懒得去掉SDL检查.所以加了.这里的scanf_s 只是为了防止编译器直接全部优化掉. 对应汇编代码如下
阅读全文
摘要:标题: kernel shellcode之寻找ntoskrnl.exe基址 http://scz.617.cn:8/windows/201704171416.txt 以64 bits为例,这是Eternalblue所用函数: x64内核态GS:0指向nt!_KPCR。对于x64,必须从相应的MSR中
阅读全文