![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ShellCode
(-: LYSM :-)
这个作者很懒,什么都没留下…
展开
-
[ShellCode] 动态解密 ShellCode,免杀
背景今天在复习《加密与解密》时,在软件保护这一章中有一个代码与数据结合的案例,其原理是将代码段中的代码进行xor异或加密处理以后回写到原始位置,当程序运行后将此处的内容动态的进行解密,解密后回写替换回原始内存位置,这样就能实现内存加载。由此案例我想到一个关于免杀的利用思路,首先杀软的运作方式多数为特征码查杀,当我们程序中使用了敏感的函数时,就会存在被杀的风险,而如果将代码段中的代码进行加密,需要时直接在内存中解密,那么杀软将无法捕捉硬盘文件的特征,从而可以规避杀软针对硬盘特征的查杀手法。经过阅读该案例转载 2020-11-27 18:10:14 · 1949 阅读 · 1 评论 -
ShellCode —— 无线程注入
背景也叫进程内存替换,就是指将一个进程的内存数据清空,写入任意我们想写入的数据,并更改执行顺序,执行我们写入的数据代码。简单过程就是:创建一个挂起主线程的进程(也可以直接挂起目标进程,不自己创建)在新进程的地址空间内申请一块内存,写入我们的 Shellcode更改新进程执行顺序,执行我们的 Shellcode 代码函数介绍// 获取线程上下文 BOOL WINAPI GetThreadContext( _In_ HANDLE hThread,转载 2020-07-26 15:51:41 · 738 阅读 · 1 评论 -
ShellCode —— 入门
原理简单来说,shell code 的核心就是把代码写成 “与地址无关” 的风格,让它不论是在什么环境下都可以被执行。具体注意:使用 API 时应该动态调用(GetProAddress)不能使用全局变量,或者用 static 修饰的变量在 shellcode 工程中要自定义入口函数确保调用 API 之前都已经加载了与之对应的 DLL所有的字符串都要用字符串数组的方式代替环境搭建首先新建一个项目,这里我推荐 空项目,之后创建一个 main.cpp 文件:使用 Release 模式写原创 2020-07-22 15:30:20 · 3949 阅读 · 1 评论