前段时间参加了NSCTF(绿盟举办的ctf),题目总体而言不是很难,其中有两题exp的高分题还挺有意思的,这里记录下当时写的exp1500的writeup。 题目要求在win7 64位以上的环境(开启DEP和ALSR)下溢出一个程序,使得弹出计算器,漏洞程序在这:http://pan.baidu.com/s/1c07EimG(提取码9y8t)。 脱壳之后,经过IDA分析之后发现,该程序存在缓冲区溢出漏洞,在ENCRYP...

这篇文章将从Android源码编译开始,一步步定制自己的Android ROM。使用到的设备为Nexus 5,Android源码版本为4.4.4_r2,编译环境为kali2.0 64位。 1.Android源码编译 android源码下载这里不再介绍,具体可以看google的官方文档。 1.1准备编译环境 编译android源码需要sun/oracle的jdk(kali2.0自带的为openJDK),3.8版本的make,还要安装的依赖库如下: ...

echo1是linux64下的溢出题。IDA逆出来的main函数: C int __cdecl main(int argc, const char **argv, const char **envp) { int *v3; // rsi@1 void *v4; // rax@1 int v6; // [sp+Ch] [bp-24h]@1 _QWORD v7[4]; // [sp+10h] [bp-20h]@1 setvbuf(stdout, 0LL, 2, 0LL); setvbuf(stdin, 0LL, 1, 0LL); o = mallo...

这篇文章接着上篇pwnable刷题writeup之Toddler’s Bottle(一): 9.mistake #include <stdio.h> #include <fcntl.h> #define PW_LEN 10 #define XORKEY 1 void xor(char* s, int len){ int i; for(i=0; i<len; i++){ s[i] ^= XORKEY; } } int main(int argc, char* argv[]){ int fd; if(...

最近在练习pwn,pwnable.kr这个网站有很多很有意思的pwn题,现放出我的部分刷题writeup: 1.fd 源码如下: C #include <stdio.h> #include <stdlib.h> #include <string.h> char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc<2){ printf("pass argv[1] a number\n"); return 0; } int fd = at...

APK的http请求中使用的安全措施大致可以分成3个阶段: java层的签名+加密 so层的签名+加密 https 当然,并不是说在so中的安全措施就一定比在java层的安全,https亦如此(曾经看过一个apk在java层模拟了https,一样也能起到比较好的安全防护效果)。 https也不能完全保障安全性,APK的保护还是需要综合各类措施。这篇文章将介绍如何使用fiddler监控任意APK发送的https请求,可以...

Cydia Substrate出了android版本的hook框架,不仅能hook java层函数,还能hook so中的函数,其核心原理是函数的inline hook,与xposed有着十分大的差别(xposed主要通过hookMethodNative将java层函数替换成native层函数而完成hook)。 合理使用Cydia Substrate可以有效绕过反调试,签名校验还可以制作脱壳机等,大大加快分析APK的效率。这篇文章主要介绍使用Cydia Substrate A...

上篇文章介绍了so加壳(加密特定section)的原理,回顾点这。这篇文章将介绍如何使加壳的so正常运行。 1.动态解密原理 在上篇文章说的加壳原理中,将特定section的长度和偏移分别写入so头部的e_entry和e_shoff字段,那么在解密时只需读取这两个字段即可找到特定section的偏移。接下来还需解决以下几个问题: 如何找到so被加载的起始地址 什么时候进行解密 如何动态修改内存权限 问题一:...

为了方便读者访问(其实是有时找不到自己的文章→_→)。已将文章做好分类,在“文章分类”一栏下可以看到比较清晰直观的文章分类,以后写的文章也都会添加进该栏目。 欢迎来访~     ...

上篇文章介绍了so加壳需要了解的elf文件格式回顾点我,这篇将介绍so加壳的原理,并且给出python版源码。 1.加壳原理 本加固方案实现对特定section进行整体加密。对特定section进行整体加密需要解决以下几个问题: 如何找到特定的section 使用什么方法加密 是否可以简化解密操作 读过上一篇blog的话,第一个问题就很简单了。只要读取每个section的名字与要被加密的section名比较即可;第...

1.SO加固系列 dex加壳是保护APK的一种方式,然而只有dex加壳会影响APK的加载速度,另外通过内存dump也能轻易还原出原dex,在专业的加固方案中除了dex加壳还能经常见到对SO的保护,本系列文章将介绍基本的SO加固方案。本文是SO加固系列的第一篇,主要介绍SO加固时所需要用到的ELF中Section的相关知识。 2.ELF中的Section ELF文件格式具体有三种类型: 可重定位...

本blog将于2015年7月15日正式启用新域名burningcodes.net,老域名itdreamerchen.com只会做域名转向至首页(至2015年8月12日),基于老域名的外部链接将会失效。欢迎来访~     ...

1.修改AndroidManifest.xml 新建一个app(本次实例中使用包名:com.xposedhooktest2),在AndroidManifest.xml中的application标签内添加xposed相关的meta-data: <meta-data android:name="xposedmodule" android:value="true" /> <meta-data android:name="xposedminversion" androi...

1.netfilter & iptables netfilter是Linux内核的一部分,可以看成是为上层处理数据包所提供的一种接口(本质是hook了数据包处理函数)。而iptables则是建立在netfilter之上的数据包过滤系统,通过简单的命令即可实现对数据包的过滤,也被称作Linux下的内置防火墙。 2.iptables中的表,链与规则 iptables中有十分重要的三个概念:table、chain、rules。他们三者的关系如下图: tabl...

1.ICMP重定向 ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。 如上图,当主机A向主机B发送一个请求时,先通过默认网关(路由R2)发起请求(蓝色虚线),而这时R2发现通过自己到达主机B并非最佳路径,通过路...

iscc比赛时间跨度很长,比赛时间过去一半了才知道,不过有很多题目都很简单,而且有足够的时间慢慢琢磨,总之还算是一次不错的ctf体验。下面是解题writeup,第一次参加个人赛还是有很多不会的>< BASIC 1 送分题不多说了,flag :anthony BASIC 2 pHBP018DCCh/KTe6Psz1/g== Lo1tv5ESqHnUzrFUA9EKeA== pHV9dBn/O0jpLpBZbw51SA== Ypm6LL2...

+
跳转到评论