1.CTFer成长日记16:用动态生成的多用代码绕过程序的静态安全检查——shellcode敏感字节检测绕过
2.计算机实习日记例文
CTFer成长日记16:用动态生成的代码绕过程序的静态安全检查——shellcode敏感字节检测绕过
敏感字节检查绕过的基本原理,关键在于利用程序执行的户日动态特性。在执行时,记网若目标程序能允许某段内存被读写执行,站源我们就能尝试将shellcode注入,码多借此劫持程序执行流至shellcode首地址,平台建站最好的源码实现ret2shellcode攻击。日记
然而,多用目标程序往往会对输入进行检查,户日发现敏感字节序列,记网如syscall、站源int等指令对应的码多机器码时,会拒绝输入,平台导致攻击失败。日记解决之道在于,多用编写一段可动态生成shellcode的代码。此代码本身不是shellcode,但能在执行中自动生成shellcode并执行,以此绕过敏感字节检查。A6源码网
理解ret2shellcode攻击过程后,我们能设想编写代码动态生成shellcode。具体方法是删除或替换敏感字节,并在执行时恢复。通过对比原始与修改后的shellcode,我们发现,关键在于修改自身shellcode的代码。
为了生成直接可用的shellcode,需修改原始shellcode,百度钓鱼源码确保满足特定条件,即敏感字节序列指令在执行前恢复。将用于修改自身的shellcode片段置于shellcode头部,确保敏感字节指令被执行前恢复,实现绕过。
接下来,通过实例题验证上述方法的有效性。自定义源代码,使用特定命令编译,源码发一段关闭程序的防御机制。通过内存布局,利用shellcode长度与main函数返回地址之间的偏移,实现攻击。
针对原始shellcode中的敏感字节,利用pwntools提供的shellcraft.sh()函数修改,首先删去syscall指令,接着在汇编代码头部添加修改自身shellcode的代码,尾部补全syscall指令对应的三国牛源码机器码。通过异或操作,将敏感字节序列转换为可接受的序列。
最后,解决的问题是获取shellcode尾部地址。通过输出shellcode首地址的程序,结合生成等效shellcode,利用脚本获取机器码长度,最终编写攻击脚本完成整个过程。
计算机实习日记例文
雨天的早晨,我选择在温暖的被窝里多躺了一会,决定给经理请个假,声称头痛,下午再前往公司。经理答应了,避免了当场露馅的尴尬。
上午,我在线上忙碌,下载了三个网站源码,期待能通过部署和运行来观察效果。然而,当我仔细查看源码后,发现后端数据库各不相同:分别采用了SQL ServerXX、Oracle、Mysql三种不同的数据库。我对微软的SQL ServerXX比较熟悉,但让人遗憾的是,我感兴趣的源码使用了MySQL数据库。这时,我产生了重建数据库的想法。通常,数据库之间的转换软件功能并不理想,这可能与数据库厂商之间的竞争有关,导致兼容性较差。受限于时间,这个计划只能暂时搁置。