自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

高新园养鸡场

种一棵树最好的时间是十年前,其次就是现在。

  • 博客(53)
  • 资源 (8)
  • 收藏
  • 关注

原创 objection 常用指令

测试用例测试用例结构比较简单。主要代码都在 MainActivity 和 Car 中。SecondActivity、MainService、MyReceiver以及布局文件并无实效代码,就不予展示了。package com.zyc.objectiondemo;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;import a

2021-07-25 00:38:54 2474 2

原创 objection 基础知识

概念Frida 提供了各种相对基础的 API 供我们调用,我们可以通过这些 API 的组合实现内存读写、禁用证书绑定、打印类所有方法之类的具体功能。如果能把这些功能封装起来,直接一条命令执行岂不美哉?于是有大佬将各种常用的功能整合进一个工具,供我们直接在命令行中使用,这个工具便是 objection。objection 功能强大,命令众多,不用写一行代码便可实现诸如内存搜索、类和模块搜索、方法hook打印参数返回值调用栈等常用功能,是一个非常便捷的逆向工程内存漫游神器。 相关命令安装命令:

2021-07-24 00:01:08 4287 2

原创 Android逆向:Native层逆向与Z3Prover的使用

案例与目标案例下载总体:输入flag,屏幕上出现“恭喜你!”则为正确flag。要求得到正确flag目标1:提示五位数:比如:24680目标2:在没有提示五位数的情况下解开。目标1使用jadx分析【提交】点击事件,发现是把username放入Native层变换后与【57fdeca2cac0509b2e9e5c52a5b573c1608a33ac1ffb9e8210d2e129557e7f1b】作比较。IDA查看导出函数,没有 Sign() 踪迹,应该是动态注册了,从 registerMeth

2021-06-06 15:24:59 1198 6

原创 JavaScript逆向:GlidedSky 字体加密题

题目题目地址:点击进入 解题单个页面的数据如下,从网页元素中可以看出,网页源码中的数字和我们看到的数字并不同,如果简单爬取网页内容肯定无法达到题目要求。注意右下角篮圈中的字体样式,这就是 372 能显示成 127 的关键所在。...

2021-05-27 13:58:04 300 1

原创 JavaScript逆向:GlidedSky JSFuck题

题目题目地址:点击进入 解题单个页面的数据如下。首先通过网络请求查看单个页面数据的获取方式。发现是从这个请求中拿到的数据,其中 sign 和 t 为需要逆向分析的字段。追踪该请求调用栈即可看到关键位置。如图,VM虚拟机已经将 sign 和 t 的生成方式“吐”出来了。上面的代码是如何生成的呢?进入 crawler-javascript-obfuscation-1.js:1 查看,里面的内容让人蒙圈。完整代码如下:[][(![]+[])[+[]]+([![]]+[][

2021-05-21 12:04:19 271 5

原创 Android安全:onCreate()函数的Native化

Java在Android开发一个Activity,常规Java写法如下:package com.zyc.oncreate2native;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends AppCompatActivity { @Override pr

2021-05-19 11:23:11 1112

原创 JavaScript逆向:金某xx网站登陆指纹算法分析

声明:案例分析仅供学习交流使用,勿用于任何非法用途。如学习者进一步逆向并对版权方造成损失,请自行承担法律后果,本人概不负责。首先查看登录时的POST请求,发现加密字段k。通过请求调用可以定位到高度可疑的 secendVerify() 函数。格式化后查看,找到了指纹参数来源。fingerprint 由下面相关函数赋值。setFingerprint: function() { var _this = this; recognition.get({ prepro.

2021-04-28 18:14:53 19384 6

原创 JavaScript逆向:某达网站的验证码刷新加密字段分析

点击验证码刷新,查看请求,会返回Base64形式的图片,其中 data 便是我们要分析的加密字段了。data通用性太高了不好找,先在对刷新请求下断点,此时的data当然是已经加密好的。代码混淆的厉害,从发起请求的地方没找到有用信息,根据调用栈向上摸排,沿着data的传入跟踪到此处,结果没有任何有用信息,也就是“跟丢了”。重新细致跟踪调用栈,发现这里的p()函数对data的处理有点可疑,于是在入口下断。从p()函数调用栈往上居然发现了构建data字段的端倪。md5() 函数点进去看了下就是常

2021-04-28 11:53:22 182 1

原创 JavaScript逆向:过某气体质量监测网站的(无效内容+无限debugger)反调试

该页面用于调试的F12,鼠标右键,CTRL + S都被禁用了。从别的页面打开控制台过来,会遇到两道防御机制:1.页面被改为无效内容。2.控制台无限打开VMXX页面卡调试。摸排源码发现两个可疑函数 endebug() 与 txsdefwsw() :endebug()函数会在调试模式下篡改页面内容。function endebug(off, code) { if (!off) { !function(e) { function n(e) {

2021-04-27 09:24:53 548 4

原创 JavaScript逆向:1某9网站登录请求CryptoJS(AES)加密字段分析

首先分析登陆过程,在登陆之前,随着焦点变化,页面会校验验证码和密码格式。上面两样东西不深究,这次还是关心登陆请求提交的数据。点击登录后页面会刷新,造成大量请求,不便判断。过滤POST请求,发现相关度较高的Login请求,提交的数据也只有Password字段有加密,这里尝试追踪请求代码,一堆jq.js中的loginNew.js可能性很大。跟进去下断发现附近有操作密码明文进行操作。步入valAesEncryptSet()函数可以发现其仅是将输入的密码做了个简单的AES加密,密钥和初始向量也是固定的。

2021-04-25 23:58:22 403

原创 JavaScript逆向:Webpack改写获得某网站登陆加密模块

声明:案例分析仅供学习交流使用,勿用于任何非法用途。如学习者进一步逆向并对版权方造成损失,请自行承担法律后果,本人概不负责。首先查看其登陆POST请求,这里随机输入密码【123456789】,显然用户名、密码等信息被加密成了jsonKey字段作为参数:从调用栈往上跟,最终找到 tiananapp/customer_login/taPcLogin POST中明文->密文的地方:此处的 newEncrypt() 函数如下://传入的l为://"{"body":{"loginMethod".

2021-04-22 09:16:54 588

原创 JavaScript逆向:console.log插桩分析某网站登陆加密模块

声明:案例分析仅供学习交流使用,勿用于任何非法用途。如学习者进一步逆向并对版权方造成损失,请自行承担法律后果,本人概不负责。要挖掘登陆模块,首先查看其登陆POST请求,其中password字段需要逆向,这里是随机输入的密码【321654】:要找到password字段的生成方式,可以从接口入手,全局搜“/user/login”:找到对应的js文件后,由于代码被压缩成一行了,点进去是无法直接达到目标位置,但可以格式化后搜索“/user/login”找到目标位置:此处下断点调试,发现在发出请求时.

2021-04-15 09:28:33 2108 2

原创 抓包:Fiddler教程

Fiddler抓WebSocket随便打开一个虎牙直播页面(如https://www.huya.com/kaerlol)可以看到里面有WebSocket数据包。如果要用Fiddler抓到这些数据包,需要编辑Fiddler Script:class Handlers{ //class Handlers中加入这段函数 static function OnWebSocketMessage(oMsg: WebSocketMessage) { FiddlerApplicati

2021-04-09 15:13:37 510

原创 抓包:Android对抗证书校验

Android客户端单向验证客户端单向验证手段很多,可以参考JustTrustMe,SSLKiller 之类的Hook框架源码去探索,这里选取几个常用的API讲解。这里我们依旧拿 https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=XXX 接口做测试,首先代码里嵌入证书(下面代码中的 TAOBAO_CERTIFICATE 变量)用来做校验:public final static String TAOBAO_CERTIFICATE = "-

2021-04-08 11:04:29 3501

原创 抓包:Android不走代理的请求

测试用例测试应用有两个按钮,分别用 HttpURLConnection 和 Okhttp3 请求 https://www.baidu.com/。注意:两个请求都加入了 Proxy.NO_PROXY。//HttpURLConnection请求https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13812371237public void getHtmlByUrlconnection(String path) throws Exception

2021-04-08 09:42:01 2840

原创 Android逆向:脱某软件dex函数抽取型壳

案例与目标案例下载jadx打开以后可以看到很明显的壳特征。目标:使用工具和自行实现脱壳。 工具脱壳FRIDA-DEXDumpFRIDA-DEXDump确实很轻松就拿到了dex文件,可惜文件数据有异常,无法正常打开分析。frida-fart通过frida-fart同样很轻松的拿到了dex文件,以首屏SplashActivity为例进行分析。jadx可以正常打开,但里面的函数都是nop。Fart脱壳机镜像pixel刷入Fart脱壳机镜像,运行后在/sdcard/fart

2021-04-05 20:24:32 1659

原创 3.frida Native层Hook

测试用例本次的hook代码都用 frida-tools方式 书写。首先写一个简单的程序用来测试。后续的测试就在这个程序上小修小改,不做赘述。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xml

2021-03-12 18:19:23 2122

原创 2.frida Java层Hook

Hook普通函数首先写一个简单的程序用来测试。后续的测试就在这个程序上小修小改,不做赘述。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layout_main"

2021-02-25 14:44:26 822 2

原创 1.frida 环境搭建

概念frida是一款基于python + javascript的轻量级Hook调试框架。从Java层到Native层的Hook无所不能,是一种动态的插桩工具,可以插入代码到原生App的内存空间中,动态的去监视和修改行为,对逆向分析很有帮助。其操作大致为手机端安装一个server程序,然后把手机端的端口转到PC端,PC端写python脚本进行通信,python脚本中用javascript语言进行Hook 。相对于Xposed而言,它可以灵活修改代码而不用重启设备加载模块。 环境搭建安装Ana

2021-02-19 11:33:20 554

原创 Android逆向:通过Xposed解密柠某直播本地数据

声明:案例分析仅供学习交流使用,勿用于任何非法用途。如学习者进一步逆向并对版权方造成损失,请自行承担法律后果,本人概不负责。简介很多软件在保护文件安全、用户隐私时,都会对本地文件数据进行加密处理。本次逆向的apk就对关键数据进行了加密,并对加解密代码提供了一定程度的保护。 目标写一个小工具解密数据。 逆向流程首先从data目录找到文件:data2.8.0。内容是经过加密的。...

2020-11-08 11:27:17 708 2

原创 Linux网络编程:Socket

概念Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件,自然可以使用文件描述符引用套接字。Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据的传递。在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程。“IP地址+端口号”就对应一个socket。欲建立连接的两个进程各自有一个socket

2020-10-19 19:16:09 195

原创 Android进程保活主流方案

简介进程保活对资讯类的App和即时通讯App的用处很大,但随着这一技术的滥用,各大手机厂商与谷歌都开始逐步收紧机制,进程保活也越来越难实现,可以说如今几乎无法实现100%保活(Android高版本特为尤甚),程序员能做的只是尽可能提升进程存活的几率(优先级)。当然,使用各种技巧提升进程存活几率的前提是对Android进程相关机制有一定的认知。本文主要介绍一下目前网上主流的保活方案。 1像素保活本方案主要是利用了安卓熄屏广播拉起仅有1个透明像素的OnePieceActivity来提升进程优

2020-10-18 21:13:39 2254

原创 Unity打包WebGL遇到的il2cpp.exe did not run properly问题

问题win10打包webgl报错:4个错误依次如下:Failed running D:\Work\Unity\Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe --convert-to-cpp --dotnetprofile="unityaot" --compile-cpp --libil2cpp-static --platform="WebGL" --architecture="EmscriptenJavaScript" --configurati

2020-10-18 20:15:05 5963 2

原创 Android逆向:9某某ds本地加密JavaScript文件逆向分析

简介本次逆向的apk拥有较为简单的加固和JavaScript源码加密,分析起来并不困难,旨在分享心得——当逆向分析遇到“死胡同”的时候,换个思路也许能拨云见日。 目标获取apk中有关“91kds播放逻辑”的信息。 逆向流程首先用jadx分析apk文件,发现其拥有360加固。尝试使用drizzleDumper获取内存中真正的dex,成功。再次用jadx分析真正的dex,没有找到与字符串“91kds”相关的有用信息,陷入僵局。 突破口——JavaScri

2020-09-22 01:50:04 1203

原创 Android逆向:某鹰直播Lua脚本解密

简介Lua是一种小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数。几乎在所有操作系统和平台上都可以编译、运行。市面上很多流行的手游就是采用Lua编写关键代码。Lua、Luac、LuaJITLua、Luac、LuaJIT是平时较为常见的Lua文件类型,其中lua是明文代码,直接用记事本就能打开,luac是lua编译后的字节码,文件头为0x1B 0x4C 0x75 0x61

2020-09-20 12:49:50 2708

原创 26.Vue插件

简介插件是为应用添加全局功能的一种强大而且简单的方式。以下是一些知名插件案例:添加全局方法或者 property。如:vue-custom-element。添加全局资源:指令/过滤器/过渡等。如 vue-touch。通过全局混入来添加一些组件选项。如 vue-router。添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。一个库,提供自己的 API,同时提供上面提到的一个或多个功能。如 vue-router。制作插件有一个公开方法install,所有的插件都需

2020-09-19 10:35:37 648

原创 25.Vue状态管理模式:Vuex

简介Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。拥有五个核心概念:StateGetterMutationActionModule状态管理模式对于一个简单的计数器:new Vue({ // state data () { return { count: 0 } }, // view template: `<div>{{

2020-09-14 09:40:28 375

原创 24.Vue路由管理器:Router(进阶篇)

导航守卫vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。其实,导航守卫就是路由跳转过程中的一些钩子函数,再直白点路由跳转是一个大的过程,这个大的过程分为跳转前中后等等细小的过程,在每一个过程中都有一函数,这个函数能让你操作一些其他的事儿的时机,这就是导航守卫。研究导航守卫,先做一个demo看看各种守卫的触发时机://main.js//全局导航守卫router.beforeEach((to, from,

2020-09-12 11:51:36 209

原创 23.Vue路由管理器:Router(基础篇)

简介Vue Router 是 Vue.js 官方的路由管理器。时下流行单页面应用,需要用到路由在模块之间切换。路由本身不发请求。Vue Router 包含的功能有:嵌套的路由/视图表模块化的、基于组件的路由配置路由参数、查询、通配符基于 Vue.js 过渡系统的视图过渡效果细粒度的导航控制带有自动激活的 CSS class 的链接HTML5 历史模式或 hash 模式,在 IE9 中自动降级自定义的滚动条行为 配置Vue Router配置文件如下。//src/rou

2020-09-11 15:04:46 254

原创 22.Vue脚手架工具:Vue CLI

简介vue-cli是脚手架工具,运行在node.js环境下,使用npm作为依赖包管理工具,其作用就是用配置好的模板迅速搭建起一个项目工程来,省去自己配置webpack配置文件的基本内容。 配置安装命令:npm install -g @vue/cli管理项目命令,可以用下方命令打开图形化界面管理项目,或者用 vue create my-project 命令行创建项目:vue ui 使用创建项目打开图形化管理界面后。创建新项目。推荐使用手动模式创建项目。

2020-09-10 09:47:56 460

原创 21.Vue开发环境搭建:Node.js

简介简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。配置下载地址:http://nodejs.cn/download/ 二进制安装包解压完成后配置环境,主要配置npm安装的全局模块所在的路径,以及缓存cache的路径,否则npm insta

2020-09-10 02:50:46 248

原创 20.Vue侦听器:watch

简介watch可以监控一个值的变换,并调用因为变化需要执行的方法。可以通过watch动态改变关联的状态。data:{ a:1, b:{ c:1 } }, watch:{ a(val, oldVal){//普通的watch监听 console.log("a: "+val, oldVal); }, b:{//深度监听,可监听到对象、数组的变化 handler(val, oldVal){

2020-09-09 16:47:51 200

原创 19.Vue计算属性:computed

简介模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如:<div id="example"> {{ message.split('').reverse().join('') }}</div>虽然可以通过函数、事件等解决上面问题,但vue提供了更便捷的计算属性computed。 <body> <div id="app"> <input type="text" v-mode

2020-09-09 09:16:37 197

原创 18.Vue过渡&动画:transition

简介Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加进入/离开过渡:条件渲染 (使用 v-if)条件展示 (使用 v-show)动态组件组件根节点 过渡类名在进入的过渡中,会有 3 个 class 切换。v-enter:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以

2020-09-08 09:41:53 852

原创 17.Vue获取Dom或子组件:ref

简介ref作用:可用于引用DOM对象。可用于引用Vue组件(访问子组件data,调用子组件方法)。演示引用DOM对象 <body> <div id="content"> <h1 ref="content1">11111111111111</h1> <div ref="content2">{{msg}}</div> <button @click="dayin()">打印看看vue的ref中有啥

2020-09-07 09:09:05 329

原创 16.Vue组件插槽:v-slot

简介开发中页面里经常看到【结构相似】的组件,在vue中定义组件时就可以通过其插槽特性,替换组件中的组成部分达到灵活配置的目的。 后备内容 <body> <div id="content"> <my-com></my-com> </div> </body> <script> Vue.component('my-com', { template: ` <div&

2020-09-06 02:47:17 228

原创 15.Vue组件:component

简介组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以表现为用 is 特性进行了扩展的原生 HTML 元素。所有的 Vue 组件同时也都是 Vue 的实例,所以可接受相同的选项对象 (除了一些根级特有的选项) 并提供相同的生命周期钩子。 全局注册extend + component使用Vue.extend配合Vue.compon

2020-09-05 04:00:44 696

原创 14.Vue网络请求:axios

简介Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。 请求方法的别名为方便使用,官方为所有支持的请求方法提供了别名,可以直接使用别名来发起请求:axios.request(config)axios.get(url[, config])axios.delete(url[, config])axios.head(url[, config])axios.post(u

2020-09-04 09:20:31 418

原创 Android逆向:虎某直播so中接口校验参数分析

声明:案例分析仅供学习交流使用,勿用于任何非法用途。如学习者进一步逆向并对版权方造成损失,请自行承担法律后果,本人概不负责。简介我们日常见到的接口多半是【http:www.xxx.com/aa=1&bb=2&cc=aaa】形式,该形式的接口很容易被别有用心的人篡改、尝试参数。为了防止此类情况发生,很多开发者会用地址中的参数、常量等生成一个字段来验证地址的合法性。本次逆向的apk接口就拥有校验字段,并且生成规则放置在了so文件中。 目标逆向apk接口校验字段的生成规则,.

2020-08-31 22:30:55 377

原创 13.Vue生命周期方法

vue生命周期方法创建期间:beforeCreate:实例刚在内存中创建,还没有初始化好data和methods属性。created:实例已经在内存中创建完成,data和methods已经创建完毕。beforeMount:模板编译完成,还没有挂载到页面。mounted:模板已经挂载到页面中。运行期间:beforeUpdate:实例状态更新前执行,此时data的值已经更新,但页面内容还没有更新。-updated:实例状态更新完毕后执行,此时data和页面内容都已经更新完毕。销毁期间:

2020-08-30 22:20:05 105

kanxue20210501W2.apk

看雪20210501W2练习题

2021-06-06

taobao.cer

测试用的taobao证书

2021-04-07

Fiddler.cer(269953fb.0)

Fiddler测试证书

2021-04-07

NCSearch.apk

逆向案例-函数粒度壳

2021-04-05

JNINativeInterface

frida 通过偏移计算hook jni用的。

2021-03-12

家用WiFi网络监控系统教程说明书

手把手教你从软件到硬件一步步制作出家用智能监控系统。节选自本人的毕业设计论文。

2015-10-21

家用WiFi网络摄像头JAVA代码

底层主控:arduino数码版,此资源为JAVA部分代码

2015-10-21

家用WiFi网络摄像头Android代码

底层主控:arduino数码版,此资源为Android部分代码

2015-10-21

空空如也

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

TA关注的人

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