- 博客(31)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 一个不那么小众的语音聊天房间挂机协议
好久没发文章了,想着大伙是不是把我给忘了~本着划水也要弄出点响声的原则,所以随便写点文字(着实厚脸皮)做了点东西出来,不发发文章,总感觉自己是在不务正业。。。由于客户要求保密,所以本篇文章没有干货,下一篇文章有。写到这里不知道下面应该怎么写了。颈椎病越来越严重了,还是得少玩电脑多玩球现在的房间语音聊天app很多,研究了少数几个,基本是使用了大厂的SDK,比如YY语音的SDK。它的房间做了两层tcp验证,两层tcp验证通过后,再间隔几秒发一次心跳包,这样就能保持一直在房间内不掉线了
2021-02-26 00:21:02 4491 6
原创 一个有颜色app(yanse)的逆向,注册协议实现
前言: 之前心血来潮(实为受人之托)去研究了下“有颜色app”的协议注册实现。何为“有颜色app”,就是上面全部是xxxx小视频,毕竟灰色,所以呢下载链接就不放了。如果大伙看了博文,对后续逆向有所帮助,那岂不妙哉!!!! 安装此app后,去操作注册,找到请求注册接口,发现头部有sign字段,此字段用于后台验证签名是否正确,只有sign正确,注册才能通过。那么下面就着重来说说这个sign到底怎么去计算。sign算法: 1、先将apk拖入jadx,查找s......
2020-12-02 15:08:04 3780 1
原创 一个小玩意的逆向
前言: “吹气球,吹个气球玩球球”......逆了一个小玩意,叫【纸飞机大乱斗】,需攻破的主要有三个地方:请求body中message加密(req_sign)、ss-sign、返回数据message解密。俗话说:工欲善其事必先利其器,准备好jadx(jeb)、idapro。过程:(一)、请求body中message加密(req_sign) message里面有很多信息,大部分字段均可通过hook方式拿到,其中req_sign是通过算法计算出来的。 ......
2020-11-17 22:30:14 2734 5
原创 抖音数据采集xgorgon算法、device_id算法、xlog算法、protobuffer解密...
杨过听她说这几句话时眼神凄楚,一颗心怦的一跳,胸口一痛,失声叫道:“姑姑!”就在此时,完颜萍已横刀自刎。耶律齐抢上两步,右手长出,又伸两指将她柳叶刀夺了过来,随手点了她臂上穴道,说道:“好端端的,何必自寻短见?”横刀自刎、双指夺刀,都只一霎间之事,待众人瞧得清楚,刀子已重入耶律齐之手。其时室内众人齐声惊呼,杨过的一声“姑姑”无人在意,陆无双在她身旁却听得清楚,低声问道:“你叫甚么?她是你姑姑?”杨过忙道:“不,不!不是。”原来他见完颜萍眼波中流露出一股凄恻伤痛、万念俱灰的神色,就如小龙女与他决绝分手
2020-09-04 16:24:14 10492 7
原创 抖音xlog算法最新版解析
前言: 抖音xlog接口用于收集设备环境数据,主要用于检测设备环境是否“合规”,也就是大伙经常听到的过“风控”!xlog接口的body是加密后的设备环境数据,加密通过xlog算法加密。目前抖音APP最新版12.x依然还是用的02算法,此算法抖音官方老长时间没更新了......“众所周知”: 抖音设备xlog算法是在native层,无法通过反编译dex获取到具体算法实现,xlog算法大概逻辑是:1、将传入参数转成byte数组;2、对压缩后的byte数组进行加密处......
2020-08-14 04:04:01 6677 1
原创 抖音直播间:公屏信息解析(纯协议方式)
前言:每每写博客都在凌晨,逆向这活不好干啊!!!眼看着头秃了,腰包却没有鼓起来。。。 抖音直播间公屏信息解析,说白了就是将抖音直播间公屏上加密的数据小白化,然后直接拉取出来保存在本地,比如某某送了礼物、某某关注了主播、某某说了句什么话、某某分享了直播间等等,这些数据保存在本地后,可进行二次分析,具有一定的价值。怎么实现: 1、使用jadx反编译apk,或者反编译抖音apk包中对应的某一个dex即可; 2、找到直播间相关文件(函数); ......
2020-07-09 03:18:32 25010 16
原创 抖音设备注册算法实现(二)
前言: 抖音APP升级比较快,最近利用空闲时间又研究了一番设备注册算法,过程比较痛苦,反编译、逆向、对拍...等过程绞尽脑汁,不过最终还是搞定了(手动高兴一波)!“从所周知”: 抖音设备注册算法是在native层,无法通过反编译dex获取到具体算法实现,设备注册大概逻辑是:1、将传入参数转成byte数组;2、对传入参数进行GZIP压缩;3、对压缩后的byte数组进行加密处理;4、请求官方接口:https://log.snssdk.com/service......
2020-06-21 02:27:24 11950 7
原创 某音直播协议实现技术探讨
第一步:XG算法实现 此算法的实现稍微复杂,不在此篇做讲解,有了xg算法才能进入直播间、进行互动等。第二步:查找进入API 通过抓包可以看到,进入某个直播的API如下https://webcast3-normal-c-hl.amemv.com/webcast/room/enter/ URL中是一些基本的设备参数信息,抓包即可看到。上代码import requestssid_guard = 'xxx'room_id = '6836.........
2020-06-09 03:18:29 10077 2
原创 某音粉丝抓取技术探讨
本着学习研究之目的,做了一个大V粉丝提取工具,实验了下提取效率挺高,3s左右可以提取到20个粉丝的信息,一天提取十十几万粉丝信息不是梦。。。 目前很多爬虫项目,无法做到连续爬取一个用户的粉丝信息,爬取完前几页后总是会出现获取不到数据的情况,本工具针对这种情况特意做了优化,实现了连续不间断爬取,主要思路就是通过注册新设备号解决。上图:比较完美,主要是中间...
2020-04-21 03:10:07 1377 1
原创 微信机器人,实时获取好友、群消息,拉取朋友圈数据
19年年末无聊的时候研究了下微信的机器人,发现并不是很难,当时主要实现了好友、群消息的实时获取,以及从微信本地数据库中拉取朋友圈数据。朋友圈数据的获取并不难,难的是对数据的解析,因为数据都是加密存储的,当时搞了好几天,后来终于搞定了,现将过程分享出来吧。1、准备相关环境 hook的过程都在手机上完成。如果手机root过,直接安装Xposed,没有root过的话......
2020-04-03 00:27:22 10645 11
原创 bpmn-js汉化(将元素提示语进行汉化)
最近项目中用到工作流引擎,流程的设计需要在前端(web)完成,项目客户可以直接进行流程的设计,然后部署、使用,前端框架用的是angular7.x。基于上述需求,我们选用了bpmn-js集成在angular中,让客户直接对流程进行设计,而不是后端将流程设计好了再供使用。先上效果图:针对bpmn-js的汉化,百度了很久,但是找到的资料要么牛头不对马嘴,要么乱扯一通,后来通过...
2019-08-02 16:49:04 9647 3
原创 linux(redhat)服务器配置,第三章:防火墙配置
最近一直在弄Linux(redhat)服务器,由于之前没有使用过Linux系统,故将操作的步骤已经遇到问题的解决思路记录下来,以便后续查用;本文章为【linux(redhat)服务器配置】系列文章的第三章。1、开放端口 通过命令打开防火墙配置文件:vim etc/sysconfig/iptables。然后添加你要开放的端口,如:# Firewall configuration
2017-02-07 18:07:11 852
原创 linux(redhat)服务器配置,第二章:JDK安装
最近一直在弄Linux(redhat)服务器,由于之前没有使用过linux系统,故将操作的步骤已经遇到问题的解决思路记录下来,以便后续查用;本文章为【linux(redhat)服务器配置】系列文章的第二章。1、下载jdk的rpm安装包: 网上资源很多。。。。。。2、安装JDK 2.1)首先查询系统是否已经有JDK了,使用命令:rpm -qa |grep jdk
2017-01-18 18:52:49 450
原创 linux(redhat)服务器配置,第一章:mysql安装
最近一直在弄linux(redhat)服务器,由于之前没有使用过linux系统,故将操作的步骤已经遇到问题的解决思路记录下来,以便后续查用;本文章为【linux(redhat)服务器配置】系列文章的第一章。1、下载mysql安装包(rpm) 网上资源很多,自行在网上下载,共三个包:MySQL-client-5.5.28-1.linux2.6.x86_64.rpm、MySQL-
2017-01-18 18:40:24 550
原创 redhat定时执行任务(自动重启Tomcat)
整体说明:定时器一分钟执行一次,进行tomcat进程的检测,如果检测到tomcat关闭,则自动重启tomcat步骤一:编写shell脚本#!/bin/sh# 获取tomcat进程ID /usr/local/tomcat_ds_apiTomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $
2017-01-18 17:43:04 2086
原创 使用com.aspose.words将word模板转为PDF乱码解决方案(window下正常)
使用com.aspose.words将word模板转为PDF乱码解决方案(window下正常)
2016-04-20 14:02:59 16020 2
原创 javascript学习笔记五:javascript中的回调函数
18.javascript中的回调模式: 形如:function writeCode(callback){ //执行一些事物, callback(); //... } function intrduceBugs(){ //....引入漏洞 } writeCode(intrduceBugs); 我们传递函数的应用给writeCode(),
2014-03-01 14:49:21 1160
原创 javascript学习笔记四:javascript中的函数(对象)
1.javascript中的函数:在js中函数就是对象(他还提供局部作用域),因为: 函数可以在运行时动态创建,还可以在程序执行过程中创建。 函数可以分配给变量,可以将他们的引用复制到其他变量,可以被拓展,大部分函数还可以被删除。 可以作为参数传递给
2014-03-01 14:45:33 793
原创 javascript学习笔记三:javascript基本数据类型+正则表达式+异常处理
1.javascript中的正则表达式:使用new RegExp();//var reg = /\\/gm;//匹配反斜杠使用正则表达式字面量;//var reg = new RegExp('\\\\','gm');正则表达式字面量表示法使用了斜杠'/'来包装用于匹配的正则表达式模式,在第二个斜杠之后,可以将该模式修改为不加引号的字母形式(g--全局匹配;m--多行匹配;i--大小写敏感的匹配)。
2014-03-01 14:42:43 810
原创 javascript学习笔记二:javascript中的数组对象和json对象
1.数组对象:创建数据对象有多种方式。 如:var myArra1 = [3];(这是使用了数组字面量)、var myArra2 = new Array(3);(这是使用了数组对象的构造函数创建一个数组对象)。 后一种方式创建了一个长度为3的空数组.2.判断一个对象是否是一个数组: Array.isArray(new Array(3));//true; Array.isA
2014-03-01 14:37:06 1089
原创 javascript学习笔记一:javascript原型+对象字面量等
1.用for-in遍历对象时(for-in最好不要用来遍历数组,遍历数组一般用for-each)最好要过滤掉对象的原型链的干扰if(Object.prototype.clone === 'undefined'){ Object.prototype.clone = function(){} } for(var key in MyObject){ if(MyObject.hasOwnPr
2014-03-01 14:32:46 1374 1
原创 手把手教你maven+sonar:项目部署
首先,建议大家下一个myEclipse10(有同事用版本9的出现了很多问题,so。。。),myEclipse10需要我们下载一个注册破解软解进行破解才能使用。 这里多说一点:我们发现在启动myEclipse10的时候总是显示building workSpace.解决办法:点击菜单project选择properties然后选择buildings,如图取消里面的验证,验证javas
2013-07-19 22:42:40 6259
原创 Extjs实战(Extjs+Spring+Hibernate+dwr)章二:控件的组件化(三)通常问题
接上一篇(http://blog.csdn.net/nanxiaotiantian/article/details/9369709)组件化讲:有的童鞋在组件化的时候,通常会这样做:Ext.namespace('Ext.left');Ext.left.LeftPanel = Ext.extend(Ext.Panel, { items:[{...},{....}] initCo
2013-07-18 17:08:11 1060
原创 Extjs实战(Extjs+Spring+Hibernate+dwr)章二:控件的组件化(二) 代码演示
OK,接着上一篇文章说extjs中的组件化,现在我直接贴出我做的系统的代码,进行讲解,希望对各位同学有帮助。 一般而言,我们在使用extjs进行富客户端的开发的时候,一般会在系统主界面的左边显示如图所示的菜单: 那么这个功能是怎么实现的?没错就是用到了组件化的概念(当然,不用组件化也是能实现的,组件化就是以面向对象的思维来编写我们的extjs代码),具体代码如下:E
2013-07-18 16:52:05 1229
原创 hibernate的load与get方法
在hibernate中有有使用load和get方法获取一个对象,者两种方法是有 不同的区别的。当使用session.load(Class ,Serizable)的时候,hibernate会帮我们创建一个我们所要获得的对象的代理,我我们真正要用的时候才会去生成一个sql语句,二session.get(Class,Serizable)是直接向数据库发起一个请求直接获得对象并不会生成代理对象。
2013-07-07 16:12:13 842
原创 hibernate的delete方法
在hibernate中我们经常会用到session的delete方法,在用这个方法的时候呢一定要注意,delete只能删了在内存中有了ID的属性的对象,如果我们新new了一个对象,但是没有对它进行持久化操作,只要在数据库中有ID与这个对象的ID相同,那么即使不对这个对象进行持久化操作,同样也会删除数据库中ID相同的这个对象。。。
2013-07-07 15:50:58 2882
原创 hibernate对象的三种状态
在hibernate中对对象进行操作的时候一般会涉及到对象的三种状态,这三种状态是:临时状态(Transient)、持久化状态(Persistent)、托管状态(Detached);临时状态:在new一个对象的时候,这个时候缓存里面还没有这个对象,数据库里面也还没有这个对象,这个对象还没有ID,这个时候就说这个对象处于临时状态;持久化状态:数据里里面没有这个对象,对象有了ID,
2013-07-07 15:42:13 663
原创 Js获取当前日期时间及其它操作
var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1970-????)myDate.getMonth(); //获取当前月份(0-11,0代表1月)myDate.getDate(); //获取当前日(1-31)my
2013-06-08 12:12:48 650
原创 ExtJs 4分页(pagingtoolbar)带参数(条件)查询解决方法
pagingtoolbar的分页,在store.load({params:{type:type_combo.getValue()}})带参数查询,默认只能查一页。分页到下一页时,是不带参数的。解决方法是,在store被load之前给页参数赋值就可以了。在Ext3中使用的方法是:store.on('beforeload',function(){ store.baseParams
2013-04-26 21:20:08 3797 1
spket-1.6.23.zip
2013-04-15
java循环右移,求完整代码
2020-06-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人