Harry's Blog

(本主题正在制作中...此版本不代表最终品质)精通C++的Java工程师,业余写写前端玩~

Android逆向-如何搞定《有缘网》网络数据加密


最近在搞一个交友项目,没啥数据来源,只好找别人的数据来充充数。

为啥要用有缘网呢? 因为第一个搜到的就是它🤗。不好意思啦,拿你开刀~

我不太懂汇编,没法当大神,如有建议,还望多多指点

第一步,反编译APK

你需要准备以下工具:

  • apktool.jar 主要用来查看安卓清单文件
  • dex2jar 将dex转换为jar的工具
  • jdgui 查看jar源代码的工具

下载客户端(官网):http://ptd.youyuan.com/apk/download/45346/YouYuan_45346.apk

原料齐全

如何搞定《有缘网》网络数据加密/01

获取安卓清单文件

使用apktool可以将apk里面的清单文件反编译出来,变成一个可以正常阅读的文件

1
2
java -jar apktool.jar d <apk路径>
java -jar /Users/harry/Desktop/apktool.jar /Users/harry/Desktop/YouYuan_45346.apk

然后可以在桌面看到多出一个和apk同名的文件夹,没错,请点开它

1
2
3
4
5
6
7
├── AndroidManifest.xml # 安卓清单文件
├── apktool.yml # 没用
├── assets # 资源,对我没用
├── lib # 一堆库文件,暂时没用
├── original # 原始的被加密的清单文件和描述文件,没用
├── res # 安卓资源,对我也没用
└── smali # 这个就是dex被转换成的中间语言smali,它是java和字节码的中间语言,晦涩难懂,我们一般是把dex转换为jar然后再查看源代码,但如果你是大牛,看看也无妨

然后就没啥用了~~~ 这是一个常规步骤,如果你想整个分析别人代码的话。不过我们这个不用

反编译dex文件

首先你得拿到dex文件

把apk的后缀名改为.zip,然后解压即可(注意改下名字,要不然就覆盖被apktool生成的目录了)

进入目录

1
2
3
4
5
6
7
├── AndroidManifest.xml
├── META-INF
├── assets
├── classes.dex # 就是它。。 可能会遇到不止一个dex文件,是因为开发商分包了,没事一个一个来就好
├── lib
├── res
└── resources.arsc

接下来就可以反编译dex了,请出大神dex2jar (linux用.shwindows用.bat)

1
2
d2j-dex2jar.sh <dex的路径>
/Users/harry/Desktop/dex2jar-2.0/d2j-dex2jar.sh /Users/harry/Desktop/YouYuan_45346zip/classes.dex


express在文件修改时自动刷新更新


在使用epxress搭建nodejs服务器的时候,每次修改了服务端代码之后,都要手动重启一下才能看到修改后的结果,在命令行和IDE之间切来切去的真的是好麻烦

Supervisor

supervisor是一个监听文件修改的框架

安装

1
2
3
npm install -g supervisor
# 如果你不想安装到全局,可以只安装到项目目录
npm install supervisor

配置到项目

先看一下express项目根目录下中的package.json(精简)

1
2
3
4
5
{
"scripts": {
"start": "node ./bin/www"
}
}

实际上我们npm start启动服务器的时候,执行的是node ./bin/www命令

我们将package.json这一行改成

1
2
3
4
5
{
"scripts": {
"start": "supervisor ./bin/www"
}
}

然后再看效果吧



和米国程序员一起工作是什么感觉?


每当想换工作时,就不由自主地想写点博客~~

今天就谈谈和美国程序员一起写代码是什么样的一种感觉

01

Q&A

先回答几个问题

  • 和美国人工作有什么不一样的地方吗?

    没有。除了下班特别准时

  • 和美国人沟通困难吗?

    工作的话,几乎没什么问题,都是业务啦、代码啦 (毕竟代码全世界通用)

    平时交流,初中英语 + 中式口语 足矣 (Are U OK?)

  • +++



sketch-基础技巧学习总结


自己想做一个漂亮的App,创意在脑海浮现,却无法表达。 暗示自己: 学点设计没坏处

Artboard

Artboard是类似于画板的玩意,可以在上面画画

Insert => Artboard 在右边栏会显示一些常用设计的的模板(ios/android)

可以选择一个模板,或者选择一个模板组

图层

图层是Sketch中的最基本构成单位,而Artboard被视为多个图层的组合

Shape中的每个形状都是一个图层

图层的操作

  • shift键添加/改变图层,绘制等边图形
  • option键选择重叠图层,会选择第二层的图层
  • 大小/移动
    • Command+上下左右 改变图层的宽高
    • Shift+上下左右 快速位移图层


Hexo使用ejs自定义文章的内容布局


What?

有时候,文章页也需要代码逻辑来生成对应的内容。 如:

  • 在文章页调用本站点的Title config.title
  • 展示100个同样布局的控件

这时就需要像 themes/layout目录中的ejs那样,使用js语言进行逻辑的处理。

但是,hexo在生成文章的时候,仅仅将MarkDown转换成html,而不会将整站的配置信息传入,所以我们要修改部分文件,达到这个效果

test page

Hexo使用ejs自定义文章的内容布局/01.png