一前言unity项目,市面上多数都是c#通过il2cpp转换的代码,核心逻辑都在libil2cpp.so(安卓)或者主程序中(ios)。et框架的核心代码并没有经过il2cpp,而是跑在ilrunti...
手脱TMD壳
郑重声明:首先,本人对脱壳是没有一点思路的,因此,非常感谢晓师傅的帮助和教导,帮我梳理了一遍脱壳的思路和知识点。让我对一些壳有了认识,也才有了这篇文章。在此,再次感谢晓师傅的帮助!!!前置知识点在学习...
静态免杀研究
“ 本文介绍的方式,通过修改杀软的特征查杀达到一定程度的免杀。”杀毒软件工作原理我们想要进行免杀的研究,我们首先就需要进行杀毒软件的分析,杀毒软件将我们木马查杀,有以下几个方面静态查杀杀软一般通过比对...
vctf apples leak libc操作复现(高版本libc overlapping)
题目中存在off_by_one libc版本2.34以上我们没办法使用常规的overlapping 泄露libc地址。所以我们要精心构造一个chunk head来绕过新版本的检查机制,实现leak l...
关于PE文件的内存加载分享
当我们想要加载执行一个程序或者shellcode时,通常的做法就是双击exe执行,然而在攻防场景中这并不容易做到,考虑到有杀软或EDR设备的环境下,命令行执行很大概率也会报毒,这是因为进程的调用链是c...
以栈的视角来认识格式化字符串漏洞
一步一步看格式化字符串漏洞一初探printf格式化字符串漏洞实际上是printf函数的使用不当产生的。首先来看一个正常的printf函数:int price = 9;char clothes[] = ...
二进制安全之栈溢出(一)
这将是一个连载,也是我的学习过程的记录,有任何问题麻烦拉到页面最下方,使用评论功能告诉我。 贵司的猫猫 哞哞 镇楼 首先假设已经有了 C 语言的基础知识,还有简单的汇编和了解内存栈结构,如果这些也不懂...
二进制安全之栈溢出(二)
上一篇文章是通过数组越界覆盖结构体中其他成员内存,达到修改该成员的值的目的,接下来将使用第二种方法获取 flag,就是使用数组越界覆盖函数的返回地址,达到控制函数执行流程的目的。 函数栈的变化 这一次...
二进制安全之栈溢出(三)
上一篇文章中控制了函数的返回地址,将地址修改为已有的指令地址,但是为了实现任意代码执行,是需要将返回地址修改为我们可以控制的 shellcode 的地址的。 shellcode 在 http://do...
二进制安全之栈溢出(四)
这一篇会总结一下前面一笔带过的几个问题,否则那仅仅是一个理想环境下的漏洞利用,在真实环境下很难遇到这么好用的。 canary canary 就是在栈溢出发生的高危区域的尾部插入一个值,当函数返回之时检...
二进制安全之栈溢出(五)
NX 不可执行是一项重要的漏洞利用缓解措施,为了绕过 NX 我们需要利用已有的可执行区域的代码片段来辅助完整漏洞利用。 这次还是需要禁用 ASLR,编译参数为 gcc -g -O0 -fno-stac...
二进制安全之栈溢出(六)
上一篇文章在执行 system 函数的时候是使用的 libc 中的 /bin/sh 字符串,如果我们想运行一个自定义的命令那就不一定能在内存中找到了,万幸的是 student 结构体的内存也是可以控制...
175