自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YenKoc的博客

底层ctf选手

  • 博客(226)
  • 收藏
  • 关注

原创 PE文件头格式解析

前言:昨天写了一题de1ctf的题,发现要脱壳,手脱之后发现要iat修复,我就发现自己在这块知识缺失了,win逆向,好像一直都是打ctf,然后用逆向方法论去肝的其他方面倒是没有很深入学习,但实际上win的一些思想沿用到移动端也是很不错的,所以接下来会把pe格式这块搞清楚,接下来再搞别的,不过估计没那么多精力玩了pe文件格式图解发现从上往下,大体结构为dos头,dos体,nt头(魔数,...

2021-03-14 14:30:00 89

原创 从安卓的系统源码看动态加载分析(一代加固)

前言主要代码参考于jiangwei大佬以及github上的一位大佬,我在编写加固的过程中,加深了对动态加载的理解,虽然现在这种java层的加固非常少了,但是还是具有学习意义。简要讲述加固流程图先放下加固流程的图(从看雪嫖的图发现图上的流程,首先是执行自定义application的attachBaseContext和onCreate方法,至于为什么会执行这两个方法,这个需要去查看app...

2021-02-22 01:05:00 83

原创 ollvm混淆的某apk题目的逆向分析

打开jadx,就发现了我们的老朋友数字壳典型的类抽取壳,直接上fart脱就完事了,我这里使用的是fart的frida脚本,省去了刷机的步骤这里的脱壳脚本,自行去github的寒冰大佬那边clone 一份下来,注意一点,就是fart.so和fart64.so copy在/data/local/tmp下,或者sdcard下,直接拷到/data/data下面,没权限,所以先做个过渡,先把...

2021-02-16 23:17:00 897

原创 安卓开发 探究内容提供器

前言: 只是我个人在阅读一行代码时,写的一些笔记,主要是敲一遍代码,然后结合我的理解复述下,有哪里不对的,请大佬指点。1. 内容提供器简介实际上我个人的理解就是内容提供器是为了让跨进程读取更加规范和安全,之前使用的sharePreferences和文件存储曾经也有提供几种模式提供外部的应用程序可以进行读取,但是并不安全,所以安卓官方已经将这种方式废除了,采取了更加规范安全的内容提供器技术...

2021-02-07 12:16:00 39

原创 charles证书导入系统信任区(Android7.0以上)

打开charles,跟着下图来,下载好charles的证书后缀是pem的格式,挺方便的了,burp的证书是der的,还需要再进一步转化成pem,这里就不再多说,利用openssl来计算出文件名加亮的,就是我们需要关注的地方,因为我们这步的目的是将证书名.pem修改为加亮的字符串.0。修改文件名导入证书到系统目录/system/etc/security/cacerts下ps: 好像看...

2021-02-05 11:12:00 72

原创 BUU mrctf shit

吐槽:去年没写出的题,现在终于可以上手了,昂哥nb动调发现直接卡着不动了,怀疑是反调试,果然有好几处反调试这里选择就不先nop了,先让程序跑起来,然后attach,在输入函数下面下个断点,attach可以理解成接管了程序的运行,个人理解所以eip会停在输入函数的里面,我们需要在输入函数下面下断就ok了。emmm,下面的反调试已经被我nop掉了,并且发现这个函数已经被hook掉了,...

2021-02-05 00:51:00 28

原创 buu SCTF Who is he

1. 下载好附件,发现是unity的题目,找到assembly.dll,用dnspy直接打开干,在引用下面就是实际的代码2.找到了核心代码,发现逻辑也挺简单的,输入的text,要和一串字符串进行base64解密后,再进行des cbc的解密相等,那么我们直接本地复现,或者动调也是可以的,c#不太熟,还是用本地复现的方式,算法也不太难,python安排上import base64f...

2021-02-04 19:15:00 36

原创 Android java层常见加密算法的hook自吐以及栈信息的打印

杂谈:其实原理并没有很难,本质就是hook Android的框架层中的api将我们想要的key和iv(也可以没有,就打个比方),但是目前的话,很多厂家已经不在直接调用java层的这些加密算法的api了,很多都是使用自己实现的加密算法,要么就是放在so里面,要么就是java层自己实现一个差不多算法的,这个我主要还是锻炼xposed的使用度,目前感觉挺好上手,甚至对我更友好,毕竟java老粉丝...

2021-01-29 20:33:00 50

原创 leetcode 面试题 17.22. 单词转换(DFS+回溯)

题目描述思路分析这题回溯,先想出它的空间解是什么,这里空间解,其实就是给的原字符串到结束字符串中间的变形过程,那么就可以容易的画出一个解空间树,用深度搜索进行搜索,剪枝后,进入下一个维度,再进行搜索,最后到达出口即得到结束字符串时,将结果返回,放下脚本class Solution {public: bool judge(string& a,string& b...

2021-01-27 13:48:00 27

原创 剑指 Offer 12. 矩阵中的路径

题目描述是一道很常见的深搜题目,不过里面要考虑一些边界问题,比如走过的路径是不能再次走入的,所以我这里我自己的代码想到是利用一个新的二维的数组,记录走过的路径,不过题解的直接将原二维数组中的路径隐藏,这样可以节省内存空间,等搜索完,再将路径重新赋值进去,tql,剩下就没啥坑点了,直接四个方向搜索,到递归出口就结束class Solution {public: vec...

2021-01-27 10:29:00 28

原创 WUSTCTF2020 funnyre

运行起来,发现啥都没反应也没输出,ida直接打开,反编译.init函数动调了下,发现没啥用,主要核心在于main函数,直接跟进去发现了核心逻辑,有花指令,直接去掉,发现还挺多,然后似乎不影响观看,直接跳到后面,发现有个比较,直接angr一把梭就完事了,想太多没啥意思import angrimport claripyp=angr.Project('/root/Desktop/at...

2021-01-26 11:38:00 51

原创 2020 DJBCTF RE wp

1.anniu吐槽:浓浓一股杂项的味道,妈的,用xspy和resource har加ida死活搜不到回调函数,淦下一个灰色按钮克星,直接把灰色的按钮点亮,直接点击就可以出了,软件下载链接:http://xiazai.zol.com.cn/detail/15/147895.shtml2.Matara Okina这题直接反编译进去,习惯性的看manifest文件,看下主活动在哪好家...

2021-01-25 23:52:00 32

原创 黑马c++基础的一个通讯录系统

前言:  代码写的挺简单的,更像是c语言的课设,然后没有持久化的东西,之前也写过一个类似的,不过我写的纯c语言大概有1700多行,把信息全用文件存起来了,所以如果要写完整的话,最好还是用数据库或者文件保存下来,另外这个是纯手敲视频的,练练熟练度,不喜勿喷1. 任务需求2. 创建项目然后选择空项目,如果没有空项目,自己百度下插件拓展将视图切换成解决方案的视图,就在那个视图那里...

2021-01-24 15:25:00 32

原创 elf文件结构解读以及plt节got节的理解

前言:  熟悉elf文件结构是一件很不错的事,因为安卓中的so加固以及修复都是需要这些知识的,包括pwn里面的rop之类的,也都是和got节,plt节息息相关的,个人建议是在搞懂elf文件结构后,自己实现一个解析器,把注释写好,方便忘了再进一步重温,写的不好见谅。一. elf文件概述elf文件包括了可执行文件,共享文件,目标文件这三类,其中安卓中涉及到的就是so文件,这个其实就是一个共...

2021-01-17 18:18:00 44

原创 ubuntu16.04上编译android的可执行文件并调用本地so库

前言:  找了蛮多资料的,发现目前实现的编译方式大致就两种,一种是直接使用android源码中的编译工具链,另一种就是使用独立的交叉编译工具链,第二种我还在实现中,配置步骤挺多的,第一种实现方式挺方便的,不想折腾的就用第一种就好了。1.先下载并配置ndk环境(根据自己机器的来选择要下载哪个版本,我这里用的是ubuntu)下载地址:https://developer.android.goo...

2021-01-17 16:57:31 52

原创 pixel的Edxposed刷机过程

1.先解开bl锁这里的步骤,因为我机子本来就是解过的了,所以简单记录一下过程好了  第一步:确保你的环境变量是否设置好了,判断的标准就是打开终端(我是mac),usb连接上,然后输入adb devices,有显示的话,证明环境变量没问题,如果没找到命令,自己设置下环境变量在perform-tools下面就好了  第二步: 在终端上输入adb reboot bootloader(前提是...

2021-01-05 16:53:00 40

原创 kali安装angr

最近打算重新学习一波angr,先把环境搭好1. 先安装virtualenv,这玩意是可以创建一个纯净的python环境,我陷入了沉思,pyenv好像也可以这里利用豆瓣的源下载,非常快而且很舒服pip3 install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com virtualenv2.然后创建自己的工作目...

2020-12-15 09:04:00 45 1

原创 花指令的模式识别以及处理

前言:花指令的出现主要是防止软件被反编译,加大逆向分析的难度,在一些代码中插入一些脏字节为啥我要写呢,因为面试的时候也碰到了,虽然我都答出来了,但是特意过来记个笔记2333一.花指令的分类1. 可执行的花指令之前在西电的ctf上,就碰到一题,只是为了混淆视听而已,实际上根本不会执行,加大你静态分析的难度,那题是在源码级上搞,还有那种在汇编级上push一下,再pop一下,这种看似没什...

2020-12-14 22:12:00 61

原创 leetcode 861 翻转矩阵后的得分

1. 题目描述2.思路分析:1. 首先这里的翻转分为了行翻转和列翻转,我们这里只需要求如何翻转后得到最大值,有点贪心的思想,因为最大值一定是固定的至于是什么路径到达的最大值不是我们所关心的,我们直接从最大的角度去考虑,为了最大,那么首先保证的是每行的第一列为1,如果有哪个行的第一列不为1的话,那么就行翻转下,然后剩下就是列的问题,第一列已经被固定了,所以就不需要被考虑了,所以直接从...

2020-12-07 23:02:00 50

原创 so层反调试方法以及部分反反调试的方法

1.检测ida远程调试所占的常用端口23946,是否被占用//检测idaserver是否占用了23946端口void CheckPort23946ByTcp() { FILE* pfile=NULL; char buf[0x1000]={0}; //执行命令 char* strCatTcp="cat /proc/net/tcp | grep :5D8A";...

2020-11-26 17:56:00 35

原创 Android hacking event 2017

1.you can't find me,老规矩先打开jeb,然后看下主活动,发现又调用了mainthread类的startWrites方法,继续跟进去。发现是新建了一个随机输入流的文件对象,然后新建了很多进程,往这个文件中去输入字符,不过里面是有时间限制的所以flag应该是根据时间顺序来拼接就好了,Aol jsvjrdvyr ohz ybzalk Puav h zapmm tv...

2020-10-31 13:50:00 27

原创 安卓开发 探究服务

前言:  关于安卓开发的笔记,其实基本都是我复现一行代码中的代码,并加上我自己的理解并解说的,也就是自己记录着玩玩的,有问题欢迎评论区指正。0x01 简介服务service是安卓里面的四大组件之一,它的作用就是可以在应用程序关闭时,还可以继续运行,比如我们平常电脑或手机听歌的时候,我们会先打开音乐软件,播放音乐后,切换别的应用,干活去了对吧,但是我们在切换应用的时候,按道理应用这时候是已...

2020-10-25 17:18:00 20

原创 从三道题目入门frida

偶然从看雪看到了一篇入门frida的题目,正好苦于没练手的东西,直接上手一波1.第一题jadx打开,也没有壳和混淆,整体非常清晰,判断的逻辑也很简单发现其实就是两个输入框,一个用户名一个密码,先拼接起来然后传入VVVVV.VVVV()方法中去校验,跟进去看一手其实代码逻辑还是挺清晰的,手逆也不难,但是这里主要还是用hook来做,这里破解是非常容易的,直接hook VVVV()方法的...

2020-10-22 12:57:00 27

原创 APP 抓包(应用层)

0x01 前言:app抓包是逆向协议的前提,也是一个爬虫工程师的基本要求,最近发现这块知识非常欠缺就抓紧补补了(我太菜了)然后接下来是通过vpn将流量导出到抓包软件的方式,而不是通过wifi设置代理,因为太容易被检测了。0x02 环境配置vpn代理软件就下载postern这个软件,vpn是在网络层这样可以把传输层和应用层的流量都抓到,大概是这样当然这个配置规则的ip和端口其实是ch...

2020-10-22 10:47:00 31

原创 安卓开发--探究碎片Fragment

简述:  最近做开发的时候又遇到了Fragment,发现太久没写,都快忘了,就抓紧写个笔记(我太懒的了233)Fragment可以简单的看成迷你的活动,它和活动一样都有布局和生命周期,它可以嵌入活动之中,这样在活动的这个大布局中,还可以嵌入碎片的布局,那么app的功能就可以多样化,实现碎片的方式也很简单,因为碎片是个迷你的活动,那么肯定得和活动一样,搭配一个布局文件,所以做法是先创建对...

2020-10-20 10:43:00 27

原创 南京大学计算机系统基础符号与符号表

0x01.符号表项直接指出了符号的类型以及他们的重定位的虚拟地址(链接后)和对应的属性,至于属性,是对于当前模块来说的,比如在a模块定义一个全局变量w,这里叫做符号定义而在b模块引用这个w,叫做符号引用,前者在符号表中,称为全局符号,后者则在符号表中,显示未定义,为外部符号,然后有static修饰的函数或者变量,又称为本地符号,别的模块是无法引用到的,如果未初始化,是默认映射到bss段中...

2020-09-30 11:26:00 29

原创 南京大学计算机基础链接器和可执行文件笔记

一.链接器1.感觉老师还是讲的很不错的,通俗易懂的讲解一个点c文件,从预处理生成.i文件,编译生成.s的汇编文件,再汇编到.o文件,再链接生成一个可执行文件预处理主要是插入#include "xx.h"这种的头文件,然后处理一些预编译的命令,然后处理完就清除,然后中间过程略过一波,直接到可重定位目标文件那步,这里说的符号解析的源头是,之前机器码直接使用物理地址来表示变量和函数的,但是有个...

2020-09-30 00:13:00 28

原创 androidstudio创建第一个so文件

前言:之前看安卓软件安全与逆向分析这书,看到ndk开发这节,发现自己连so文件都没编译操作过233,所以就直接上手试试,感觉挺好玩的,把关键的加密流程都放进so中去实现,这周先写个demo试试,感觉出题还是得和安卓的运行机制结合,然后再一个点到一个点来玩,比较有条理,之后放到github上,之后作为招新赛的题目来搞直接切入主题了,就不放图了,要看图的直接看我放的链接吧,里面图文并茂,这里主...

2020-09-29 16:00:00 26

原创 Androidmanifest.xml文件格式详解(转载)

https://www.jianshu.com/p/eaaae96473f6来自简书大佬的

2020-09-23 22:21:00 19

原创 XCTF-boomshakalaka-3

这题讲道理出的挺脑洞的,apk直接拖入jeb打开,找到主活动这里有两个方法,一个是onCreate()方法,还有一个是onCreateView()方法onCreate()方法调用了a这个对象的d方法,还调用了两次,onCreateView()方法调用是在onCreate()方法调用后才会调用里面也调用了a对象的d方法,现在跟进这个方法看看它里面调用了一个getSharedPre...

2020-09-23 14:38:00 22

原创 羊城杯wp babyre

肝了好久,没爆破出来,就很难受,就差这题没写了,其他三题感觉挺简单的,这题其实也不是很难,我感觉是在考算法。在输入之前有个smc的函数,先动调,attach上去,ida打开那个关键函数。代码逻辑还是很清晰的,坑的地方就是在最后一个异或那里,题目已经给出了最后一个字符是0xC4了,这样我以为可以倒着求,发现写完算法,缺了十几位,我反复的验证,发现有多解,但是当时凌晨2点多了,我脑子也坏了...

2020-09-14 17:01:00 36

原创 Whitzard OJ Introduce to packing

1.概述这个就是个smc,为什么会归于加壳,我个人理解是和UPX的运行方式有点像把,不对应该是说和压缩壳的运行方式很相似,都是先运行一段解密代码,之前的符号表也替换了下2.解题有两种方式一种是类似elf脱壳的方式gdb attach,这里其实就是一种让程序先运行起来,先运行必然先执行解密代码,自然把程序自动还原了我们在坐收渔翁之利就好,attach进程,然后把内存中运行,解密后的机器...

2020-09-02 16:32:00 19

原创 XCTF_Android 黑客精神

一.概述这题感觉要懂一些开发的东西才能弄,正向和逆向是永远离不开的二.先用jeb打开,找到AndroidMainfest这个文件,找到启动的主活动是啥虽然一般也是就是MainActiivity,不过确实一下也挺好的,发现就是这个活动,我们跟进去看看三.跟进MainActivity先看这个onCreate方法,毕竟启动这个活动是先调用这个方法的。然后发现有个Myapp.m的字段...

2020-09-01 00:48:00 22

原创 webView远程代码执行漏洞复现

一.概述这个漏洞只存在于Android API level 16以及之前的版本,系统没有限制使用webView.addJavascriptInterface方法,导致攻击者可以通过使用java 反射API利用该漏洞执行任意java对象的方法,也就是通过addJavascriptInterface给WebView加入一个JavaScript桥接接口,JavaScirpt通过调用这个接口可以直接操...

2020-08-31 15:56:00 49

原创 安卓一行代码 服务的创建

10.3.1 创建服务AndroidStudio是个牛逼的工具讲道理实在是太智能了,这波操作就是右键点击然后可以选择创建Service,之后两个选项都勾着,第一个是否允许其他应用程序访问这个服务。,第二个是是否可用。创建完之后就重写几个方法package com.example.servicetest;import android.app.Service;import andro...

2020-08-26 13:37:00 18

原创 APP-SECURITY-404 组件导出漏洞复现

参考资料:https://github.com/wnagzihxa1n/APP-SECURITY-404/blob/master/2.%E7%BB%84%E4%BB%B6%E5%AF%BC%E5%87%BA%E6%BC%8F%E6%B4%9E-Intent%E6%8B%92%E7%BB%9D%E6%9C%8D%E5%8A%A1/%E7%BB%84%E4%BB%B6%E5%AF%BC%E5%87%...

2020-08-15 17:43:00 32

原创 pip 下载时出现问题TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

我这里解决就是更新下载源,马德,中科的源居然不够快,我就只能换源了,一换就成功了1.一次性(临时使用):可以在使用pip的时候加参数-ihttps://pypi.tuna.tsinghua.edu.cn/simple例如:pip install -ihttps://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip(其他包名也可以),这样就会...

2020-07-29 02:41:00 33

原创 error more than one devices and emulator

问题秒速莫名的多了一个设备,然后再输入adb shell解决方法:1.如果确实有多种设备,要指定设备号adb -s 设备号 shell(设备号在这里是 emulator-5554,其他同理)2.没有多种设备,莫名的出现一个adb kill-server 杀adb的服务taskkill /f /im adb.exe 杀adb进程优先使用第一个...

2020-07-10 09:18:00 18

原创 第八次抽考(随机数)

package week4;import java.util.Random;public class Work3 { public static void main(String args[]) { MathUtils m=new MathUtils(); m.init(); m.sum(); } ...

2020-06-14 19:59:00 18

原创 第12次抽考(GUI)

1.package week4;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JPasswordField;import javax.swing.JButton;import java.awt.Font;import jav...

2020-06-14 16:26:00 18

空空如也

空空如也

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

TA关注的人

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