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