Android 双层代理配置 (shadowsocks + VPN)

在 Android 环境下使用双层代理,同时使用 shadowsocks 和其它VPN App:

手机 -> ss server -> VPN server -> Target

手机环境:
已 root
安装 shadowsocks-android 和任一其它 VPN App

配置:

1. 在终端(adb shell 或任一 terminal app)里以 root 用户执行命令修改路由:

ip rule add to <SS_SERVER_IP> lookup wlan0
ip rule add to <SS_SERVER_IP> lookup rmnet_data0

每次手机重新启动后都需要执行一次上面命令。

2. 将 Shadowsocks-Android 设为 NAT 模式;编辑 profile 文件,开启 per-app mode, 去掉 “bypass mode” 选项,app list 里只选中 VPN App。

3. 启动 shadowsocks 和 VPN 即可,VPN 需要工作在 tcp 模式。

How it works:

当 shadowsocks 配置为以上模式时(步骤2),只会拦截 VPN App 的 OUTPUT 流量 (以及 dns 解析请求) 并转发到本地 ss 端口。所以只有 VPN App 到 VPN Server 的流量会走 ss(VPN 的虚拟网卡流量是内核维护的,不属于 VPN App,所以不会被捕获),这样就实现了双层代理。

ivy_dsds:/ # iptables -t nat -vxnL OUTPUT
Chain OUTPUT (policy ACCEPT 11095 packets, 773246 bytes)
......
    1213    79262 DNAT       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 to:127.0.0.1:1133
      33     1980 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            owner UID match 10124 to:127.0.0.1:8123

但是 VPN 启动后会修改路由表默认路由,所以必须保证到 ss server IP 的路由直连。这个只需要用 ip rule 添加一个自定义路由规则即可(步骤1)

広辞苑無料利用サイト

暇つぶしで「広辞苑無料検索」というサイトを作ってきました。「広辞苑」などの国語辞典をご利用・検索ことができます。辞典データの情報源はネットでダウンロードした「EPWING」形式の辞典ファイルです。サイトのすべての機能が無料です、お気軽にご利用してください。

サイトの入り口:広辞苑無料検索

現在ご利用できる辞典リスト:

  • 岩波書店·広辞苑第六版
  • 小学館·中日日中統合辞書第2版
  • 三省堂·スーパー大辞林
  • 三省堂·必携類語実用辞典
  • 三省堂·必携故事ことわざ・慣用句辞典

サイトの開発フレームワーク:React + Redux

ゴールデンアワー

Getchu, CG, Torrent & CG Torrent, 空間

LE 出错, 需要用 Ntlea 等转区软件运行

这作好棒.

まりか线我还以为是Bad End呢.

2017-08-12 All Clear.

True End 略郁闷, 要是来个类似”神様のゲーム”结局那种伏笔就好了.

PS. 夏未线那个「梅田千尋」好像也是和恶魔签订300天死亡契约的吧, True 线里完全没提…

PS. 好喜欢南浜よりこ的画风. 哦想起来「ヒマワリと恋の記憶」我以前推了一半就放哪里了, 找时间回头把它推完.

AbemaTV android app 简单破解去除区域限制

AbemaTV-無料インターネットテレビ局」是一个日本网络电视台「アベマTV」出的视频 App,里面不少节目和视频都是免费的。

但是我安装后发现这个 App 有区域限制,启动时全屏显示 “このサービスはお住まいの地域からはご利用になれません。”提示,无法继续。

简单地尝试下破解了这个 App 的区域限制。步骤如下:

1. 从 apkpure 下载 AbemaTV app 最新版的 apk

2. 用 apktool 这个工具解包下载的 apk. apktool 是一个 java 包,需要安装 Java 运行。

java -jar apktool_2.2.4.jar d “AbemaTV 無料インターネットテレビ局_v3.5.1_apkpure.com.apk”

3. 解包后的文件在当前目录下 “AbemaTV 無料インターネットテレビ局_v3.5.1_apkpure.com/” 文件夹。其中,res/ 是资源文件,smali/ 和 smali_classes2/ 是 java 源码编译后的 smali 文件。这个 app 好像没怎么加密什么的。

在整个目录里搜索 “このサービスはお住まいの地域からはご利用になれません。” 字符串,找到:

<string name=”error_abroad_description”>このサービスはお住まいの地域からはご利用になれません。</string>

搜索 error_abroad_description,找到:res/values/public.xml:
<public type=”string” name=”error_abroad_description” id=”0x7f0a0114″ />

搜索 0x7f0a0114,找到 smali_classes2\tv\abema\components\fragment\a.smali:

.class public Ltv/abema/components/fragment/a;
.super Ltv/abema/components/fragment/u;
.source “AbroadFragment.java”

const v1, 0x7f0a0114
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(I)V

可以看到,这是一个 Fragment 类编译成的 smali 文件,当 app 检测到当前设备是日本以外区域(检测方法未知,可能是检测手机sim卡运营商信息)时就在当前 activity 上加载这个全屏 fragment 以阻止使用,所以最简单的破解方法就是把这个“创建并显示 Fragment”部分代码去掉。

搜索 “Ltv/abema/components/fragment/a”,找到:
smali\tv\abema\a\jk.smali

.line 202
const-class v0, Ltv/abema/components/fragment/a;
invoke-virtual {p0, v0}, Ltv/abema/a/jk;->I(Ljava/lang/Class;)V

看起来就是这里了,将这几行用 “#” 注释掉。

4. 最后,用 apktool 重新打包修改后文件生成 apk,参数就是之前解包apk文件所在目录

java -jar apktool_2.2.4.jar b “AbemaTV 無料インターネットテレビ局_v3.5.1_apkpure.com”

生成的 apk 在 AbemaTV 無料インターネットテレビ局_v3.5.1_apkpure.com/dist 文件夹下。

生成的 apk 是未签名的,无法直接安装。可以手工用 java bin目录下 keytool 工具生成密钥,jarsigner 工具给 apk 签名。(具体过程网上资料很多);也可以用直接用 apk-signer 这个图形化工具来进行

最后在手机上安装生成的 AbemaTV_v3.5.1_SIGNED_UNALIGNED.apk 即可,实测能够正常进入主界面并观看视频,搞定。

附上我自己生成的破解区域限制的 AbemaTV apk:

AbemaTV_v3.5.1_SIGNED_UNALIGNED.apk

Update

修改 app 包后无法使用 Google Play IAP 内购功能。最完美的破解 root 检测方法仍然是安装 XPosed + rootcloat

Update.2 (2017-08-08)

类似方法解除 Hulu 日本Android app的 root检测:

由错误提示“OSの整合性チェックに失敗しました。Root権限を取得している場合、起動できません。”跟踪找到某个Fragment:


const-string v2, “su”

invoke-virtual {v1, v2}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0

move-result-object v0

const v1, 0x7f0900e8

这里通过运行 su 检测是否有异常来判断机器是否已 root,所以最简单的移除方法就是把 “su” 随便改成个不存在对应命令的名字。

Hulu.jp_v1.0.11_apkpure.com_SIGNED_UNALIGNED.apk

Tweets Archive between 2017-05-22 and 2017-05-28

  • 几年前通过github免费领了2000个ripple山寨币就放那没管,今天一看这货对人民币汇率竟然涨到2.2了。。要不要卖掉呢。。。 17:08:01, 2017-05-22

Tweets Archive between 2017-05-15 and 2017-05-21

Tweets Archive between 2017-05-01 and 2017-05-07

Tweets Archive between 2017-04-24 and 2017-04-30

母になる

看了这部日剧前两集, 感觉就像吃了一堆屎一样难受. 特别是第二话那封信. 麻子役大嫌い!

话说我为什么要看这么虐的剧集? 我还是去推废萌 galgame 吧.

Tweets Archive between 2016-12-26 and 2017-01-01