自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 CVE-2020-0423

CVE-2020-0423漏洞简介2020年10月公布了bulletin,这是最近新的提权漏洞,存在于binder中。这个漏洞大致上是binder的sender和receive端的对binder_node结构体的race condition转化为uaf漏洞,作者进一步触发了double free,结合后续巧妙的堆喷分配,利用slub和ksma机制,绕过kalsr和cfi保护,官方给出影响的版本在Android 8-11之间漏洞原理我们从patch来明白漏洞点这是patch前// Before

2022-02-09 16:38:58 4839 1

原创 CVE-2019-2215

CVE-2019-2215复现环境:android 10 kernel: Linux localhost 4.14.150+ arch:x86_64架构exp只适用于x86(主要是在patch addr_limit上) 其他的架构要根据addr_limit在thread_info或是thread_struct的偏移修改.漏洞简述CVE-2019-2215是一个谷歌P0团队发现的与binder驱动相关的安卓内核UAF漏洞,配合内核信息泄漏可以实现任意地址读写,进而可以通过权限提升获取一个root

2022-02-09 16:20:10 649

原创 CVE-2019-2025

CVE-2019-2025复现环境: Android 8.0 Linux kernel:Linux localhost 4.4.124+ #1 SMP前提知识binder是c/s结构 有services client 线程池 还有传输的数据讲解binder相关的数据结构里面的主要成员,binder的相关函数以及binder的内核缓存区管理相关数据结构struct binder_proc {//每个进程调用open()打开binder驱动都会创建该结构体,用于管理IPC所需的各种信息 struc

2022-02-09 16:08:48 586

原创 cve-2015-3636

cve-2015-3636CVE-2015-3636是一个Android系统上可通用的root提权漏洞复现的kernel版本:3.14,编译时将补丁去除了漏洞概述该漏洞属于Linux Kernel级别的use-after-free漏洞,存在于Linux内核的ping.c文件中。当用户态调用系统调用socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP),用返回的socket文件描述符作为参数调用系统调用connect(),并且connect的第二个参数中sa_family

2022-02-09 16:01:52 436

原创 ddms看不见进程名

修改ro.debuggable参考:https://blog.csdn.net/jinmie0193/article/details/111355867

2021-11-09 12:14:33 244

原创 2021虎符ctf-逆向题解

red…mips架构,nmslGoEncrypt输入符合正则格式的flag:flag{11111111-1111-1111-1111-111111111111}, 除了”-“的其他hex编码 ,之后分成2组 xtea,脚本抄百度就行#include<stdio.h>#include<stdlib.h>#define uint32_t unsigned intvoid encipher(unsigned int num_rounds, uint32_t v[2], ui

2021-04-04 07:47:12 2978 3

原创 android动态加载activity

这个技术常用于android插件开发,android加固,,,,(妈的,抄第一代壳的时候,死活看不懂,原来是因为没看过这技术。。),我还得补一补,,,classloader类加载器,听名字就知道用于加载类的,对于安卓层面的话,就是用于加载dex文件双亲委派加载dex文件的时候,问一下当前的类加载器有没有加载,没的话,递归问类加载器的超类,这一继承路上,只要dex文件被其中一个classloader加载,其他时候都不用被加载android的类加载器1.bootclassloader(加载andr

2021-04-01 14:42:05 600

原创 星阑面试经历

大二下的课程比较少,就想这能不能远程实习一下,恰好有学长在星阑工作找实习,于是我就让他帮忙投个简历,面试试试,昨天面试完了,没有想到我竟然过了。。。记一下面试的一些问题我的方向主要是二进制逆向1.你给ctf出过题,能说说具体的细节吗,出题经历?2.rc4和aes有何不同? (懵逼)3。exe的全称叫什么?4.exe和elf文件格式有什么区别(懵逼)5.在linux上几种反调试手段?6.ptrace能几次?(一次) 为什么只能一次呢?从原理上面说说(懵逼)7.apk的文件结构8.如何准确定

2021-04-01 08:59:16 218

原创 pe文件格式

总的来说 pe文件结构 比elf全面多了 dos头 pe nt头 file头 可选头, 区块表开头IMAGE_DOS_HEADER_STRUCT{ +0 e_imagic "MZ" +2 e_cblp +4 e_cp +6 e_crlc +8 e_cparhdr +0a e_minalloc +0c e_maxalloc +0e e_ss +

2021-03-11 20:33:10 94

原创 frida踩坑合集-(碰到就写)

玩了frida一个月,呜呜呜。。。可是bug.好多。。。一会显示不出了,一会 不能hook了,rpc有时不行。。。可能我不会玩把,记录一下,防止以后踩坑,(一定要读frida源码 弄懂为什么 立下的flag)1.尽量直接注入js脚本,不要用python rpc send碰到一些,就打印不出来,用console.log2.动态注册时 js脚本延缓几秒再注,可能还没注册完 , hookregisternative没有打印3.python脚本时 resume放的位置不一样 还可能打印不出来 我傻了

2021-02-28 23:46:57 1990 1

原创 android开发(广播,数据持久化)

广播类型1.标准广播:broadcastReceiver同时收到广播信息2.有序广播:一个一个发接受系统广播1.动态注册broadcastReceiver 用代码注册 在当前class中写receiver类2.静态注册broadcastReceiver 用androidManifest.xml动态注册1.新建一个类,继承BroadcastReceiver 重写onReceive(),当广播来时,用onReceive来处理要创建一个IntentFilter实例 add action 来表明

2021-02-14 16:51:20 193

原创 android开发学习(ui)(四)

textviewandroid:gravity来指定文字的对齐方式:top,bottom,start,end,centerandroid:textColor颜色 android:textSize大小buttonandroid:textAllCwzaps = “false” button上的文字保持原状EditTextandroid:hint 提示性的话在editTextandroid:maxLines指定edittext的最大行数editText.text.toString()得到字符串i

2021-02-11 08:45:35 111 2

原创 frida学习(java对象) && android开发学习(activity)(三)

安卓开发结算自第一行代码自我认为的重点在AndroidManifest.xml中<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER"></intent-filter>表面这个项目的主activityAppcompatActivity是一

2021-02-07 17:05:26 964

原创 frida学习(process,module,memory) && android开发学习(结构,kotlin)(二)

FRIDA输出打印console.log()console.warn()console.error()console之hexdump打印内存中的地址target参数可以是ArrayBuffer或者NativePointer,而options参数则是自定义输出格式可以填这几个参数offset、lengt、header、ansivar libc = Module.findBaseAddress('libc.so');console.log(hexdump(libc, { offset: 0,

2021-02-05 21:36:58 1877 1

原创 frida学习 && android开发学习(一)

frida主要是看r0ysue大佬的githubandroid开发主要看安卓开发文档中文版当然frida的api有些功能不明白,主要看官方文档manifest文件描述了项目的基本特征并列出了组成应用的各个组件activity_main.xml 此 XML 文件定义了 Activity 界面的布局。它包含一个 TextView 元素,其中具有“Hello, World!”文本Android 的图形用户界面由多个视图(View)和视图组(ViewGroup)构建而成。这是视图的唯一标识符。可以在

2021-02-03 16:28:43 416

原创 HWS计划2021硬件安全冬令营线上选拔赛 re wp

感觉这比赛比较简单。。。花了一天时间做,直接ak逆向了decription弱智题,爆破就行a = [ 0x12, 0x45, 0x10, 0x47, 0x19, 0x49, 0x49, 0x49, 0x1A, 0x4F, 0x1C, 0x1E, 0x52, 0x66, 0x1D, 0x52, 0x66, 0x67, 0x68, 0x67, 0x65, 0x6F, 0x5F, 0x59, 0x58, 0x5E, 0x6D, 0x70, 0xA1, 0x6E, 0x70, 0xA3]b

2021-02-01 12:25:07 2227 1

原创 小米手机刷机&& 动态调试so文件

我吐了。。。太麻烦了 ,我整个人都麻了。。。刷了一天了。。。算了。毕竟是第一次。记一下流程。。开发者模式我的设备->全部参数->android版本点5下->出现开发者模式->开启usb调试这就可以电脑向手机传数据了解锁http://www.miui.com/unlock/download.html看官方指示就行 这样bl锁(怎么这么色情)就好了suhttp://www.miui.com/download-218.html?#313对了,记得手机要先recover,

2021-01-28 16:28:30 333

原创 hook与注入&& 软件保护技术 &&软件壳

hook的类型java层:1.Dalvik hook 2.ART hookNative层: 1.LD_PRELOAD_Hook 2.Inline hookhook框架xposed吐了 老是报错l…为什么。。。https://blog.csdn.net/tanmx219/article/details/81369229【已解决】

2021-01-27 16:23:57 285

原创 安卓原生系统开发与逆向工程

基本上是elf逆向。。。都知道啊。。。基本上就讲了一下elf的文件格式,还有c++的逆向…elf的文件格式也写过了。。。偶对了,该去补全了。。c++的(类的开头指针是方法指针的指针列表 vtable)逆向之后去补全一下(之前读过的c++反汇编和逆向分析技术解密 读书笔记忘写了。。。还有程序员的自我修养。。。真是懒狗。。。忘了记读书笔记了。。。)原生程序的动态调试。。。。不就是调arm elf吗。。。我本就会。。。我还以为它会教我怎么调so文件。。这个我不怎么会。。。...

2021-01-25 12:13:02 197

原创 arm基础

sub 减 sub sp.sp,#16str 存 str r0,[sp,#12]ldr 取 ldr r0,[sp ,#12]add 加 add ro,ro,r1bx 返回arm把程序返回结果放在r0寄存器在32位的用户模式下,处理器可以访问的寄存器为不分组寄存器r0~r7,分组寄存器r8 ~r14,程序计数器r15m及当前程序状态寄存器cpsr在arm63-v8a(也就是arm64位)zhon:1.有异常等级 el0~el32.基于5位寄存器说明符的简洁解码表3,指令语义与aarc

2021-01-24 16:14:47 288

原创 1-23

今天摸鱼了(,只是安装了一下工具,(重新签名这么麻烦)解决了一些动态调试的问题。。感觉android有个sdk模拟器 啥都不是事…明日计划:1.看完第7章(arm汇编)2.想学csapp和c++,要不先手撸一个stl?...

2021-01-23 23:52:55 67

原创 安卓静态分析

smali感觉和学x86汇编差不多。。。都是看while for switch…而且switch也有跳转表有些特别的packed-switch vaa,+BBBBBBBB+BBBBBBBB是packed-switch-payload格式的偏移量struct packed-switch-payload{ ushort ident; //固定为0x100 ushort size;//case的数目 int first_key;//初始case的值 in

2021-01-22 22:14:52 128

原创 安卓文件分析-ODEX&OAT

ODEX在android5.0之前,主要使用Dalvik,Dalvik对apk的dex文件进行一定程度的优化,解析dex文件并生成ODEX文件比dex多了以下内容DexOptHeader:ODEX文件头,描述了ODEX文件的基本信息Dependences:依赖库列表,描述了ODEX文件加载时可能使用的依赖库classlookups:优化数据块的类索引列表信息registerMaps:优化数据块的寄存器图信息struct DexOptHeader{ u1 magic[8];//固定为d

2021-01-22 16:41:46 426 2

原创 安卓文件分析-androidmanifest.xml&resources.arsc&META-INF目录

androidmanifest.xmlAXML文件格式:(apk的配置信息):xml->AXMLResFileheaderResStringpoolResIDsResXMLTreestruct ResChunk_header{ uint16_t type; uint16_t headersize;//当前ResChunk_header的大小 uint32_t size;//该chunk结构体数据的长度,它包涵当前Reschunk_header前两个字段的8字节}

2021-01-22 14:16:10 373

原创 1-21 安卓文件分析-dex

库文件:jar包 ,aar包dex文件:dex header头string_idstype_idsproto_ids 索引结构区field_idsmethod_idsclass_defdata 数据区linked_data 静态链接数据区struct DesFile{ const DexOptHeader* pOptHeader;//这是啥? const DexHeader * pHeader; const D

2021-01-21 23:00:39 183

原创 2021-1-19(idapython学习 主要是)

主要学习了下idapython,理解夜影师傅的去花指令脚本(正则nb)idapython脚本学习:https://gitee.com/it-ebooks/it-ebooks-2018-04to07/raw/master/IDAPython%20%E5%88%9D%E5%AD%A6%E8%80%85%E6%8C%87%E5%8D%97.pdffor segs in idautils.Segments(): print idc.SegName(seg),idc.SegStart(seg),idc.

2021-01-19 22:46:43 153

原创 1-18

今天复现了kctf-3 链表成的vm太nb了,完全看不懂,看wp,x32才调出来的,顺便安卓逆向看完了第2章,感觉就是apktool解包,修改数据再装包,没什么特别的,apktool d -o 解包apktool b 装包oncreate()监听,发消息第3章看了个头 dalvik虚拟机(寄存器 参数),比java快指令格式:梅16个字用 隔开每个字母表示4位A~z 4位操作码 op 8位操作码指令有3个字符构成第一个数字 几个16位的字2 几个寄存器3字母

2021-01-19 00:49:17 74 1

原创 kctf2 复现

今天主要是复现了kctf的第2题,x32安装了两个插件,将核心代码dump了下来,(太菜了),ida看时候甚至看不出来它有壳,用strongod脱下来后,就主要看它的算法,不得不说看雪的逆向真的是体力活,还设置了许多数学知识,真的是好题目。主要是用了线性同余发生器和hex编码,而正的idx生成的种子,要与我写的hex编码一样,我最多写道90个,所以在0~90内找12个两两做差互不相等的数字,因而最后得到flag,同时今天配好了anroid的环境,明天开始学习安卓逆向,明日计划:争取看anroid安全核心

2021-01-18 00:39:14 126 1

原创 huaweictf-re

期末考试终于考完了,逆向之旅要重新开始了,复现和写当时huaweiwp,复现kctf,以及学长让我学安卓逆向,那么也要开始了,不过安卓逆向要怎么学,希望师傅能给位指点一下weird_lua这道题,拿到手,用ida查看lua,发现是5.3.3,尝试用luadec(5.3)来试试,发现不行,盲猜虚拟机指令进行了修改,然后就不会了。。。看wp,还修改了头,我按照它的,修改了loadbyte,发现还是不行,哪个师傅能告诉我一下怎么处理阿。。。。它的版本号还是没有^0xff,只要完成这个,之后都十分顺利了。。。

2021-01-16 21:28:24 176

原创 纵横杯 -re部分

friednly resub413590sub4120c0sub412040sub411db0sub41123f是关键函数main函数中先nop掉几个指令,能够输入然后手动hook messageboxw,因为main函数前尝试程序自己失败了,hook成函数sub411370,然后注册了异常,异常有注册了异常,经过整理明白,按顺序整理sub4120c0 sm4密钥初始化然后sub412040 sm4对我们输入加密sub411db0 对比的答案移位 对sm4加密后的结果进行改base64

2020-12-27 00:22:15 318 5

原创 针对vmp和ollvm的解决方法

自我总结1.angr2.gdb脚本测试3.pin插桩(目前的学习经历知道这几种方法,如果有别的,欢迎师傅们补充,其中pin还没用过,angr就只会写模板,gdb还写不来。一般都动调。。。有待学习,补充)...

2020-11-25 09:46:12 965 6

原创 祥云杯-re复现 (未完待续)

周末祥云杯没打,主要是自己想摸了。。(就是这么直白)还有就是nctf举办,我出题,我到比赛那天还没出完。。。(太咕了。。)比赛后就想来复现这比赛,看解题人数,感觉满难的,应该很有质量,就跟着null的wp复现吧,一天复现一题re1动态调试,发现对flag的每一位进行相同的操作,慢慢看太多了,因此可以gdb脚本爆破,null的脚本写错了把。。程序开了pie,第一句就不对。。。而且while也没让程序重新启动,这里给出我写的pwndbg> define f1Type commands for

2020-11-23 19:58:23 616 7

原创 c++异常处理

以vc++6.0 为例使用_cxxframehandler时,传入一个全局地址,funcinfo函数信息表,透入了c++异常的一些消息funcinfo :magicnumber : 魔数,固定数字maxstate : 最大栈展开数的下标值punwindmap : 指向栈展开函数表的指针dwtrycount : try块数量ptryblockmap : tr

2020-11-12 11:54:39 200

原创 radare2学习(间断更新)

rax2数值转换rax2 -s 414141 “AAA” -a show ascii table ; rax2 -a -b bin -> str ; rax2 -b 01000101 01110110 -B str -> bin ; rax2 -B hello -d force integer ; rax2 -d 3 -> 3 instead of 0x3 -

2020-11-04 20:07:04 295

原创 湖湘杯-re

re1ibm s/390 看逻辑就是个解方程,z3试一下,原本用bitvec,发现看上去就不怎么对,用int 就好了,真奇怪from z3 import *table = [0x00, 0x00, 0xB2, 0xB0, 0x00, 0x00, 0x6E, 0x72, 0x00, 0x00, 0x60, 0x61, 0x00, 0x00, 0x56, 0x5D, 0x00, 0x00, 0x94, 0x2D, 0x00, 0x00, 0xAC, 0x79, 0x00, 0x00, 0x39, 0x1

2020-11-02 16:45:20 1133 17

原创 2020.10.29小记

信安数基第四章1.使用中国剩余定理求解同余式2.欧拉判别条件a是模p的平方剩余的充要条件ap−12===1(modp)a^{\frac{p-1}{2}}===1(mod p)a2p−1​===1(modp)a是模p的平方非剩余的充要条件ap−12===−1mod(p)a^{\frac{p-1}{2}}===-1 mod(p)a2p−1​===−1mod(p)3.推论设p是奇素数,(a1a_1a1​,p)=1,(a2a_2a2​,p)=1(1)如果a1,a2都是模p的平方剩余,则a1∗a

2020-10-29 17:32:14 231 1

原创 2020.10.28小记

bytectf被打自闭了(安卓做nm,没学过)。。就会一个qiao。拿了个三血,该开始重新学习了,最近学校离散数学上课讲了代数结构,感觉比较重要,要记一笔,以及今天做了离散数学实验一(化主析取感觉怪怪的。。。)*是定义在集合a上的二元运算交换律y*x==x*y结合律(x*y)*z==(y*z)*x* $为a上的两个二元运算分配率x*(y$z)==(x*y)$(x*z)吸收律 *$可交换 x*(y$x)==x x$(y*x)==x等幂律 x*x==xe*x==x

2020-10-28 20:30:31 854

原创 堆的攻击方式

堆溢出堆溢出是指程序向某个堆块中写入的字节数超过了堆块本身可使用的字节数(之所以是可使用而不是用户申请的字节数,是因为堆管理器会对用户所申请的字节数进行调整,这也导致可利用的字节数都不小于用户申请的字节数),因而导致了数据溢出,并覆盖到物理相邻的高地址的下一个堆块。calloc ==malloc + memesetremalloc = malloc + free寻找危险函数通过寻找危险函数,我们快速确定程序是否可能有堆溢出,以及有的话,堆溢出的位置在哪里。常见的危险函数如下输入 g.

2020-10-28 10:35:38 438

原创 io?(记一笔)

io_file的结构truct_IO_FILE5.{6.int_flags;/*High-orderwordis_IO_MAGIC;restisflags.*/7.8./*ThefollowingpointerscorrespondtotheC++streambufprotocol.*/9.char*_IO_read_ptr;/*Currentreadpointer*/10.char*_IO_read_end;/*Endofgetarea.*/11.char*_IO_read_base;/*Startof

2020-10-21 11:15:58 84

原创 pwn_heap(未完待续)

早上上信安数基,了解了中国剩余定理,就是求同余方程组的解,找时间,用c++复现以下pwn_heap堆在程序运行过程中,堆可以提供动态分配的内存,允许程序申请大小未知的内存。堆其实就是程序虚拟地址空间的一块连续的线性区域,它由低地址向高地址方向增长。我们一般称管理堆的那部分程序为堆管理器。mallocmalloc 函数返回对应大小字节的内存块的指针。此外,该函数还对一些异常情况进行了处理当 n=0 时,返回当前系统允许的堆的最小内存块。当 n 为负数时,由于在大多数系统上,size_t 是无符号

2020-10-15 16:07:13 433 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除