iOS AOP文章系列
前导知识:
Mach-O文件结构分析 静态链接&动态链接 OC方法&OC类&OC对象 方法查找和消息转发 AOP框架:
Method Swizzling Fishhook Apsects NSProxy AOP 静态链接 还是通过 🌰 来分析:
➜ ios cat bar.c int global = 1; void fizz(int a) { global = a; } ➜ ios cat main.c extern int global; void fizz(int a); int main() { fizz(100 + global); return 0; } 编译链接 bar.c 和 main.c 生成可执行文件 main
➜ ios xcrun -sdk iphoneos clang -c bar.
iOS AOP文章系列
前导知识:
Mach-O文件结构分析 静态链接&动态链接 OC方法&OC类&OC对象 方法查找和消息转发 AOP框架:
Method Swizzling Fishhook Apsects NSProxy AOP 二进制结构 使用 MachoView 工具查看二进制执行文件,结构为:
Header 头中魔术数字:
可执行格式 magic 用途 脚本 \x7FELF 主要用于 shell 脚本,但是也常用语其他解释器,如 Perl, AWK 等。也就是我们常见的脚本文件中在 #! 标记后的字符串,即为执行命令的指令方式,以文件的 stdin 来传递命令 通用二进制格式 0xcafebabe 0xbebafeca 包含多种架构支持的二进制格式,只在 macOS 上支持 Mach-O 0xfeedface(32 位) 0xfeedfacf(64 位) macOS 的原生二进制格式 Mach-O 主要三部分:
最近逛Gayhub看到Hugo,不管框架怎么样,先进官网看主题,颜狗瞬间被皮肤所吸引,回头默默看了下自己的博客,不就是荣耀水晶皮肤和没皮肤的区别么!再浏览文档和上手体验后,竟然还体会到了+10点攻击力的感受,安装、配置、部署、主题、MD即显、Actions配套等处处体现Hugo的简洁、灵活和高效!
随即开始了迁徙之路(主要是想换个皮提高下写Blog的动力)…
安装 参照官档:
https://gohugo.io/documentation/
同时Hugo Demo站也提供了详尽文档:
https://hugoloveit.com
主题 个人喜欢黑白极简:
https://themes.gohugo.io/loveit/
配置 着重说下三个小坑:
搜索功能
未使用开箱即用的lunr(听说对中文不友好),直接用algolia,除了根据Hugo文档配置config.toml对应部分外,为了后续实现Github Actions自动化部署,而使用atomic-algolia,额外需要通过npm init生成package.json后,在其中添加:
... "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "algolia": "atomic-algolia" }, ... ``
Actions中workflow配置:
- name:Setup Nodeuses:actions/setup-node@v2.1.0with:node-version:'12.x'# ... #- name:Setup Algoliaenv:ALGOLIA_APP_ID:63ROI1DYLOALGOLIA_ADMIN_KEY:${{ secrets.ALGOLIA_ADMIN_KEY }}ALGOLIA_INDEX_NAME:houugen_blogALGOLIA_INDEX_FILE:public/index.jsonrun:npm install atomic-algolia && npm run algolia Note ALGOLIA_ADMIN_KEY为Algolia API Keys中的Admin API Key,将其值添加到Github的Secrets中 文档图片
之前使用Hexo时文章和图片文件夹并行在posts中
➜ houugen.github.io git:(hugo) ✗ tree posts posts/ ├── Blockchain-Security-Articles.
背景 国家企业信用信息公示系统查询时使用极验验证码,大概率为第三代汉字语序点选识别。
查询资料发现可使用深度学习进行汉字定位及分类。
参考资料:
https://runninggump.github.io/2018/11/19/破解含语序问题的点击验证码 https://cos120.github.io/crack/ https://www.cnblogs.com/codefish/p/10104320.html http://www.aneasystone.com/archives/2018/03/python-selenium-geetest-crack.html 实践后效果:
使用的框架、算法及工具:
定位&分类 样本标注:labelImg、若快 训练框架:darknet yolov3 语序识别 百度ocr 结巴分词 百度搜索词频统计 模拟 selenium 滑动轨迹:利用jquery.easing模拟人工轨迹 踩坑 汉字定位和分类学习详尽的实践步骤参考资料中都有说明,这里不再叙述。这里记录下实践过程中踩的坑及一些特殊处理。
darknet环境 坑1:不要使用cpu训练 windows/linux推荐使用 AlexeyAB/darknet,专门定制。 VS2017 + VC++2015 v140工具集 CUDA9.0 (坑2: 10.0 在win10 nvidia gtx 1080 ti上报 cuda error:no error,==!答案搜都搜不到,耽搁许久尝试降级才成功) OpenCV 3.4.0 cuDNN7.1 分类样本 坑3:使用手工标注汉字分类样本500张1h后发现刚不住,可使用打码平台,多进程8w张3h搞定。
坑4:分离1.3k汉字训练后验证100张发现准确率同样为85%!无需更多样本分离更多汉字。
坑5:人工打码准确率不能奢望,又花费1h对词频小于10的茫茫多汉字进行修正(脚本在仓库)。
环境:
spider(docker) : scrapy + postgresql
auto(vps) : script(python2markdown & bash2workflow) + travis2hexo
New Articles 2019-01-03 区块链安全—整数溢出原理分析 EOS竞猜游戏ggeos昨晚遭交易回滚攻击 Old Articles 2018-12-29 PeckShield: EOS竞猜游戏LuckBet今晨遭交易回滚攻击 2018-12-28 EOS 回滚攻击手法分析之重放篇 攻击BetDice的黑客团伙再现,竞猜游戏LuckyMe正遭攻击 PeckShield:EOS竞猜游戏GameBet遭受交易回滚攻击 针对Electrum钱包的钓鱼攻击,损失已高达100万美元 以太坊Fountain代币遭溢出攻击 2018-12-26 区块链安全—随机数安全分析(上) EOS 回滚攻击手法分析之黑名单篇 PeckShield:EOS竞猜游戏Lucky Nuts因随机数安全问题暂停 区块链安全—随机数安全分析(下) 2018-12-25 Bitcoin Private(BTCP) 的案例研究 2018-12-24 PeckShield安全播报: EOS竞猜游戏EosDice遭受交易回滚攻击 PeckShield安全播报:EOS竞猜游戏Pickown遭“假转账通知”攻击 PeckShield 安全播报: EOS竞猜游戏LuckBet遭随机数攻击 2018-12-20 EOS DApp 攻击重现之利用黑名单账号进行欺骗攻击 区块链安全—简单函数的危险漏洞分析(一) 2018-12-19 BetDice遭黑客攻击,损失近20万EOS ToBet遭到黑客恶意攻击 Big.
FridaDev 作为大自然的搬运工和组装师傅,收集并增强一些非常有用的frida脚本封装为FridaDev工具,可以实现一键式逆向需求,提高生产力。
脚本来源:
https://github.com/0xdea/frida-scripts https://github.com/AloneMonkey/iOSREBook/tree/master/chapter-7/7.3%20Frida%E5%AE%9E%E6%88%98%E5%BA%94%E7%94%A8/Frida 修改:
动态hook ui增加打印controller和action 根据稳定性trace选择spwan,其他功能选择attach 仓库直通车:https://github.com/houugen/FridaDev
功能 usage: fridaDev.py [-h] [-l] [-i] [-u appName] [-d appName] [-t identifier] [-e identifier] frida tools optional arguments: -h, --help show this help message and exit -l, --list list running processes -i, --info list installed app infomation -u appName, --ui appName show UI (only for ios) -d appName, --dynhook appName dynamic hook -t identifier, --trace identifier ObjC/java and Module tracer -e identifier, --enumerate identifier Collection of functions to enumerate classes and list 功能:列出运行进程名及pid