Category Archives: 技术

Build executable so (shared object) on Android

0x00 背景

0x01 方法

用以下Android.mkmain.c编译即可。编译出的libmain.so既可以当作动态库来链接,也可当作可执行文件执行。需要注意的是,如果是使用cpp后缀,__attribute__((section(".interp")))将不起作用。包含__attribute__((section(".interp")))的源码只能使用.c后缀

//Android.mk
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := main

LOCAL_CFLAGS += -fPIC -pie
LOCAL_LDFLAGS += -Wl,-e,entry -llog

LOCAL_MODULE    := main
LOCAL_SRC_FILES := main.c

include $(BUILD_SHARED_LIBRARY)

Continue reading

MAC上导出Non-extractble的证书和私钥

0x00 背景

如果MAC上的私钥被倒入时使用了-x选项,择该私钥在导入后无法从Keychain中导出。这个选项常用于公司管理下的电脑,不想让员工导出安装好的私钥。但是实际上这个私钥还是在员工的电脑里,所以一定有办法提取这个私钥。

0x01 提取

受这个回答启发:
https://stackoverflow.com/questions/25109994/non-extractable-private-key-in-keychain-on-os-x/25213646#25213646
Continue reading

SSL证书回想

0x00 背景

看到这个漏洞https://blog.doyensec.com/2018/05/24/electron-win-protocol-handler-bug-bypass.html的时候,里面提了一句chrome的–host-rules参数,这个参数很厉害,如果你按如下方式启动chrome:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=1 --host-rules='MAP * www.google.com'

等于是把所有网站都重定向到www.google.com,这时你访问任何一个网站,都会返回谷歌的网站,最厉害的是,chrome不会显示证书错误!

那么如果我们是用dns spoofing来实现重定向,chrome会不会显示ssl证书错误呢?
Continue reading

Bypass ffmpeg的ssl certificate check

0x00 背景

最近在做一个项目,我想使用burp截获ffmpeg发送的请求,但是发现即使我在客户端上装上了burp的CA证书,也还是会出现ssl handshake error。于是我将ffmpeg进行了一下bianry patch,disable了ffmpeg的证书检证。在0x01中我将介绍如何patch,在0x02中我将分析一下为何在客户端上安装了burp的CA证书还是会出现ssl握手错误。
Continue reading

如何在release build的iOS app上debug webview

0x00 背景

大家知道,在mac上用safari的web inspector可以远程dedug iphone 的safari或者app的内置webview。iphone的safari是任何时候都可以被debug(前提当然是iphone的设置允许了web inspector),但是app内置的webview并不是总能被debug的,如果app是release build的,那么它内置的webview就不能被debug。

为了解决这个问题,如果你有一台越狱了的iphone,则可以通过重新打包ipa文件使得app内置的webview可以被debug。
Continue reading