AndServer

一个小玩意的逆向

僤鯓⒐⒋嵵緔 提交于 2020-11-19 10:57:10
前言: “吹气球,吹个气球玩球球”......逆了一个小玩意,叫【纸飞机大乱斗】,需攻破的主要有三个地方:请求body中message加密(req_sign)、ss-sign、返回数据message解密。俗话说:工欲善其事必先利其器,准备好jadx(jeb)、ida pro。 过程: (一)、请求body中message加密(req_sign) message里面有很多信息,大部分字段均可通过hook方式拿到,其中req_sign是通过算法计算出来的。 (1)打开jadx,将apk拖入并查找关键词:req_sign,定位到具体代码位置: (2)查找到之后,应该就容易明白了,主要就是将三个字符串拼接在一起然后进行一次MD5,三个字符串分别是:当前时间戳、code_id的值、UUID随机字符串。 (二)、ss-sign (1)同样,先查找字符:ss-sign,定位到实现代码处: (2)一步一步跟踪进去,你会发现调用了native方法,调用的so库是:libnms.so,用ida打开此so库,里面有具体的实现过程。但是...我的天让我吐一会,混淆太严重,做了控制流平坦化,你需要做的是什么呢,是去控制流平坦化,我需要做的是什么呢,是直接上andserver,嘿嘿嘿(三连~)......andserver直接google教程就好了,很简单。 (三)、返回数据message解密 (1

.net core微服务——gRPC(下)

心不动则不痛 提交于 2020-08-13 05:28:26
序 上一篇博客把grpc的概念说了个大概,介绍了proto的数据类型,基本语法,也写了个小demo,是不是没那么难? 今天要从理论到实际,写两个微服务,并利用grpc完成两者之间的通信。只是作为demo写的话会十分简单,毕竟理解为主。 服务端 首先要拿出之前写好的proto文件,然后修改两个属性: Build Action => Protobuf compiler gRpc Stub Classes => Server only 如图: 当然也可以在项目文件里看到它: 然后重新生成项目 ,会自动根据proto文件生成server端的文件。 引用 经过刚才,已经生成了对应的服务,我们可以直接在代码里调用。 这是之前写好的proto: syntax = " proto3 " ; option csharp_namespace = " gRPCApiDemo.Protos " ; package Demo; service MyMath{ rpc MathAdd (AddRequest) returns (AddRespones) {} } message AddRequest{ int32 a = 1 ; int32 b = 2 ; } message AddRespones{ int32 a = 1 ; } 生成以后,会有一个MyMath.MyMathBase这个类,我们来继承一下:

PS-Scan ports扫描网络端口

旧时模样 提交于 2020-08-12 08:31:52
用PS写出端口扫描 TCP139/445 AND UDP 137/138 用法简单:在c:\temp\target.txt写入多台IP地址 端口可以自己定义 以下是代码: <# This script can be used to Scan port TCP139/445 AND UDP 137/138 Need to modify Ip address under C:\temp\Target.txt first Date:2017-05-15 #> function Test-PortUDP{ <# .SYNOPSIS Tests port on computer. .DESCRIPTION Tests port on computer. .PARAMETER computer Name of server to test the port connection on. .PARAMETER port Port to test .PARAMETER tcp Use tcp port .PARAMETER udp Use udp port .PARAMETER UDPTimeOut Sets a timeout for UDP port query. (In milliseconds, Default is 1000) .PARAMETER TCPTimeOut Sets a

聊聊dubbo-go的tracingFilter

半腔热情 提交于 2020-08-06 20:50:57
序 本文主要研究一下dubbo-go的tracingFilter tracingFilter dubbo-go-v1.4.2/filter/filter_impl/tracing_filter.go const ( tracingFilterName = "tracing" ) // this should be executed before users set their own Tracer func init() { extension.SetFilter(tracingFilterName, newTracingFilter) opentracing.SetGlobalTracer(opentracing.NoopTracer{}) } var ( errorKey = "ErrorMsg" successKey = "Success" ) // if you wish to using opentracing, please add the this filter into your filter attribute in your configure file. // notice that this could be used in both client-side and server-side. type tracingFilter struct { }

SpringBoot WebSocket STOMP 广播配置

江枫思渺然 提交于 2020-04-28 05:04:09
[TOC] 1. 前言 WebSocket是一种在单个TCP连接上进行全双工通信的协议,常用于实时通信的场景。在没有使用高层级线路协议的情况下,直接使用WebSocket是很难实现发布订阅的功能。而STOMP是在WebSocket之上提供了一个基于帧的线路格式层,STOMP客户端可以同时作为生产者和消费者两种模式。为发布订阅的功能提供了基础。 2. STOMP协议 STOMP is a simple text-orientated messaging protocol. It defines an interoperable wire format so that any of the available STOMP clients can communicate with any STOMP message broker to provide easy and widespread messaging interoperability among languages and platforms (the STOMP web site has a list of STOMP client and server implementations . 文档地址: http://jmesnil.net/stomp-websocket/doc/ 3. SpringBoot

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第三节:WebResponse

对着背影说爱祢 提交于 2020-04-27 06:15:46
第二节中,我们介绍了WebRequest,它可以帮助我们发送一个请求,不过正所谓“来而不往非礼也”,对方收到我们的请求,不给点回复,貌似不太合适(不过,还真有脸皮厚的:P)。 接下来,就重点研究一下,我们收到的回复,是个什么样的东东 [Code 1.3.1] 1 // 2 // Summary: 3 // Provides a response from a Uniform Resource Identifier (URI). This is an abstract 4 // class. 5 public abstract class WebResponse : MarshalByRefObject, ISerializable, IDisposable 6 { 7 // 8 // Summary: 9 // Initializes a new instance of the System.Net.WebResponse class. 10 protected WebResponse(); 11 // 12 // Summary: 13 // Initializes a new instance of the System.Net.WebResponse class from the specified 14 // instances of the System.Runtime

资源:Java

偶尔善良 提交于 2020-04-16 07:15:27
【推荐阅读】微服务还能火多久?>>> ylbtech-资源:Java 1. 返回顶部 2. 返回顶部 · https://docs.oracle.com/javase/8/docs/ · Oracle has two products that implement Java Platform Standard Edition (Java SE) 8: Java SE Development Kit (JDK) 8 and Java SE Runtime Environment (JRE) 8. JDK 8 is a superset of JRE 8, and contains everything that is in JRE 8, plus tools such as the compilers and debuggers necessary for developing applets and applications. JRE 8 provides the libraries, the Java Virtual Machine (JVM), and other components to run applets and applications written in the Java programming language. Note that the JRE

爬虫工程师的unidbg入门教程

陌路散爱 提交于 2019-12-27 23:45:19
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 现在很多的app使用了so加密,以后会越来越多。爬虫工程师可能会直接逆向app,看java代码,完成java层的算法破解,但是如果遇到so该怎么办呢?可能你会直接破解so,但是真的会有很多爬虫工程师会去并且会破解so吗?有时候我们可以不用破解so,利用很多大佬写好的轮子即可完成so的调用。 说到调用,就有很多方法了,比如用frida的rpc、xposed+andserver、再者就是unicorn+web框架等等,今天要说的并不是这些,而是unidbg,这框架有什么好的地方呢?看看介绍。 介绍(来自逸飞) unidbg 是一个基于 unicorn 的逆向工具,可以黑盒调用安卓和 iOS 中的 so 文件。unidbg 是一个标准的 java 项目。 由于现在的大多数 app 把签名算法已经放到了 so 文件中,所以要想破解签名算法,必须能够破解 so 文件。但是我们知道,C++ 的逆向远比 Java 的逆向要难得多了,所以好多时候是没法破解的,那么这个时候还可以采用 hook 的方法,直接读取程序中算出来的签名,但是这样的话,需要实际运行这个应用,需要模拟器或者真机,效率又不是很高。 unidbg 就是一个很巧妙地解决方案,他不需要直接运行 app,也无需逆向 so 文件,而是通过在 app 中找到对应的