2016年11月27日日曜日

[MCPE]Minetでプラグインを導入する on Win10

こんにちは。haniokasaiです。minetに手を付けていなかったので、つけようと思います。というのも、ある理由からlinuxでlobiクライアントを動かさないといけなくなり、c#からc++に翻訳する必要が発生したので、両方とも勉強したい、まずはc#からだということではじめました。

今回は、説明にこのプラグインを使います。ここから落としてください。
http://ogiwara.wpblog.jp/2016/11/24/howtoimportplugins/

まず、server.confを開きます。


そこで、

次に、

PluginDirectory=plugins;
を追記します。

プラグイン名.Enabled=false

と書くことにより、プラグインフォルダに入っている状態で、無効にすることもできます。

そのあと、pluginsフォルダをつくって、中にプラグイン(dll)を入れます。
そのプラグインの上で、右クリックをしてプロパティを開きます。


ウィンドウ下の、セキュリティのところのブロックの解除にチェックを入れないと、プラグインは読み込めないので、してください。(拾ってきたプラグインの時のみ)


そして、MiNET.Service.exeを実行すれば完了です。
参考: http://ogiwara.wpblog.jp/2016/11/24/howtoimportplugins/

2016年11月26日土曜日

libminecraftpe.soをAndroidで逆アセンブルする!

注意!出来上がったファイルは500MB近いです!合計で1GBは使います!あと、root化済みのmcpeが入ったandroidが必要です!

Windows版 http://blog.haniokasai.com/2016/11/libminecraftpesowindows.html


まず、これをgoogleplayからインストール
https://play.google.com/store/apps/details?id=com.aide.ui&hl=ja

次に、ndkをダウンロードします。
そのアプリを開いて、画面右上のボタンを押して、more...->Settings->Build&Run->Manage native code supportでダウンロードしてください。





ターミナルで

su

cd /data/data/com.aide.ui/files/ndksupport-*/android-ndk-aide/toolchains/arm-linux-androideabi-*/prebuilt/linux-arm/bin

ここで、

./*-objdump
と実行するとたくさん何か表示されます。



Androidのスマホの/data/data/com.mojang.minecraftpe/lib/にあるlibminecraftpe.soをbinフォルダ内に入れてしまいます。

そこで、

./arm-linux-androideabi-objdump -dRC libminecraftpe.so > dumpmcpe.txt

と実行してください。しばらく待ちます。

そうすると、dumpmcpe.txtに逆アセンブルした内容が書かれています。かなり大きいので注意。

cpuをそれなりに使いますので注意。

参考文献:https://www.youtube.com/watch?v=OEMIiI3B0vU


libminecraft.soを解析して、パケットとか、いろいろ調べる!

前回:

libminecraftpe.soをAndroidで逆アセンブルする!



これを使うと、どうやら、パケットやhex値がわかるそうです。

Windowsでやってみます。

まず、これを落とします。https://github.com/PEMapModder/DecMcpe

次にここから任意のbinを落とします。https://bintray.com/pocketmine/PocketMine/Windows-PHP-Binaries

それらを同じフォルダにならべ、そこと同じ階層のフォルダにinという名のフォルダをつくり、そのなかに前回作ったdumpmcpe.txtをmpe.asmと改名し入れます。

こんな感じです。


このフォルダにコマンドプロントで移動して、

ディレクトリ名/bin/php/php.exe _DecPacket.php

と実行すれば、パケットのことの書いてあるファイルが、out内に出力されるでしょう。

が、うまくいきませんでした。。。。

ほぼ空っぽのファイルができるだけです。

もうすこし、調べてみます....

追伸:2016/11/26

libminecraftpe.soをWindowsで逆アセンブルする!

よくわかりませんが、libminecraftpe.soをWindowsで逆アセンブルするやり方を書いておきます。

注意!出来上がったファイルは500MB近いです!合計で1GBは使います!あと、root化済みのmcpeが入ったandroidが必要です!

まず、ここから、あなたのosにあった、android ndkの開発環境を落とします。(今回はwindowsで説明します)
https://developer.android.com/ndk/downloads/index.html

これを解凍して、コマンドプロントにて、android-ndk-バージョン\android-ndk-バージョン\toolchains\arm-linux-androideabi-バージョン\prebuilt\OS名\bin
に移動してください(または環境変数を設定してもいいです。)

Androidのスマホの/data/data/com.mojang.minecraftpe/lib/にあるlibminecraftpe.soをbinフォルダ内に入れてしまいます。

そこで、

arm-linux-androideabi-objdump.exe -dRC libminecraftpe.so > dumpmcpe.txt

と実行してください。しばらく待ちます。

そうすると、dumpmcpe.txtに逆アセンブルした内容が書かれています。かなり大きいので、サクラエディタとかで開きましょう。

cpuをそれなりに使いますので注意。

参考文献:https://www.youtube.com/watch?v=OEMIiI3B0vU

2016年11月23日水曜日

SitPack買ってみた!使ってみた!

どうも。haniokasaiです。高1のわたしですけど、長い間勃つ立つのはつらいものがあります。


そこで、わたしが見たツイートはこれ。これはいいかもと思い、思わず、ツーハンを見てしまいました!

https://www.sitpack.dk/14-shop

11/11記念で買ったので、ケースと本体で、税込み60ドル。送料9ドル。高校生には高い!
まぁ、恋しちゃったんで買いましたけど。

アカウント作成、購入すると、割とすぐに(1日)で、発送されます。しかしなぜか、デンマークの輸送センターで4日ほどとまっていました。結局、1週間で、おうち(埼玉県)に来ました。

不在伝票を見ると、国際便 デンマークって書いてあったw

夜、家に到着してまず、invoiceを取り出しました。

そしたら。。。。
なんと!納品書が4枚も入っていました!
絶対に、そこまでいらないと思うけどw同じのだしw


(ケース)


やわらかい?


感じて!

本体
こんな風に余裕をもって座れるのでしょうか。







展開してみた



座ってみる。
首からかける。




どーん!

乗るのムズイ。
安定しているけど、、、乗り方違う。


これはグリップ、摩擦度係数が高い。

使ってみたら、割と安定していました。見た目が細いので、精神的不安要素が多いのですが。よっぽど日常と比べれば、安定している!と思えば、座れます。ただ、説明書に、片っぽの棒に体重をかけるなと書いてあったので、注意。

ディズニーの待ち時間とかよさそう。あと、遅延の時とか。

実際に使ったら、レポート待たしますのでよろしくお願いします!

質問は、コメント欄で受け付けます!




2016年11月16日水曜日

githubから組織のすべてのプライベートリポジトリをgit cloneする方法

githubのプライベートリポジトリをブルーレイにバックアップしようと思ったので、調べてみた。

username=*****
password=******
 ORGANIZATION=ダウンロードしたい組織名
for i in `curl -u $username -s https://api.github.com/orgs/$ORGANIZATION/repos?per_page=200 |grep html_url|awk 'NR%2 == 0'|cut -d ':'  -f 2-3|tr -d '",'`; do
expect -c "
set timeout 20
spawn git clone $i.git
expect \"Username for \'https://github.com\':\"
send \"$username\n\"
expect \"Password for \'https://[email protected]\':\"
send \"$password\n\"
interact
";
done



ちなみにユーザーの公開リポジトリは

 ORGANIZATION=*******
for i in `curl   -s https://api.github.com/users/$ORGANIZATION/repos?per_page=200 |grep html_url|awk 'NR%2 == 0'|cut -d ':'  -f 2-3|tr -d '",'`; do
git clone $i.git;
done

でできます

参考
https://gist.github.com/caniszczyk/3856584
http://futurismo.biz/archives/1357

2016年11月13日日曜日

激安海外VPS 1か月300円ちょっとのVPS in フランス [scaleway]

某社からサーバーを借りて、数か月。なんやかんやで貸してくれなくなったので、フランスのvpsを借りることにしました。
安いところないかなぁって思っていたらscalewayを思い出した。atomプロセッサのvpsです。
前、激安なフランスの専用サーバー会社online.netのホームページを見たとき、不意に発見したのだけれども、スペックはどうなんだろうな。


uiはいい感じ。

アムステルダムリージョンは、日本からだと非常に遅いので、注意。

osの更新ペースはよさそう。



cpuはatom

[email protected]:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 77
model name : Intel(R) Atom(TM) CPU C2750 @ 2.40GHz
stepping : 8
microcode : 0x1
cpu MHz : 2393.902
cache size : 1024 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon rep_good nopl pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes rdrand hypervisor lahf_lm 3dnowprefetch tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms arat
bugs :
bogomips : 4787.80
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 77
model name : Intel(R) Atom(TM) CPU C2750 @ 2.40GHz
stepping : 8
microcode : 0x1
cpu MHz : 2393.902
cache size : 1024 KB
physical id : 1
siblings : 1
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon rep_good nopl pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes rdrand hypervisor lahf_lm 3dnowprefetch tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms arat
bugs :
bogomips : 4787.80
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:


メモリ2gb

[email protected]:~# cat /proc/\meminfo
MemTotal: 2050688 kB
MemFree: 1391184 kB
MemAvailable: 1800676 kB
Buffers: 39196 kB
Cached: 562640 kB
SwapCached: 0 kB
Active: 579352 kB
Inactive: 37112 kB
Active(anon): 14696 kB
Inactive(anon): 16352 kB
Active(file): 564656 kB
Inactive(file): 20760 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 12 kB
Writeback: 0 kB
AnonPages: 14628 kB
Mapped: 15288 kB
Shmem: 16424 kB
Slab: 35552 kB
SReclaimable: 24396 kB
SUnreclaim: 11156 kB
KernelStack: 1344 kB
PageTables: 1364 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1025344 kB
Committed_AS: 72748 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 12160 kB
DirectMap2M: 2084864 kB
[email protected]:~#


ディスクはまぁまぁ
[email protected]:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 10.9633 s, 97.9 MB/s


アメリカの速度はそれなりに速い
[email protected]:~# wget -O /dev/null http://speedtest.dallas.linode.com/100MB-dallas.bin
--2016-11-13 07:46:30-- http://speedtest.dallas.linode.com/100MB-dallas.bin
Resolving speedtest.dallas.linode.com (speedtest.dallas.linode.com)... 50.116.25.154, 2600:3c00::4b
Connecting to speedtest.dallas.linode.com (speedtest.dallas.linode.com)|50.116.25.154|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: ‘/dev/null’

/dev/null 100%[===================>] 100.00M 20.3MB/s in 5.4s

2016-11-13 07:46:35 (18.5 MB/s) - ‘/dev/null’ saved [104857600/104857600]


日本は遅いなぁ。
[email protected]:~# wget -O /dev/null http://speedtest.tokyo.linode.com/100MB-tokyo.bin
--2016-11-13 07:46:40-- http://speedtest.tokyo.linode.com/100MB-tokyo.bin
Resolving speedtest.tokyo.linode.com (speedtest.tokyo.linode.com)... 106.187.96.148, 2400:8900::4b
Connecting to speedtest.tokyo.linode.com (speedtest.tokyo.linode.com)|106.187.96.148|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: ‘/dev/null’

/dev/null 100%[===================>] 100.00M 11.0MB/s in 11s

2016-11-13 07:46:52 (9.08 MB/s) - ‘/dev/null’ saved [104857600/104857600]


フランスからの平均的なping値。
[email protected]:~# ping speedtest.tokyo.linode.com
PING speedtest.tokyo.linode.com (106.187.96.148) 56(84) bytes of data.
64 bytes from speedtest.tokyo.linode.com (106.187.96.148): icmp_seq=1 ttl=47 time=250 ms
64 bytes from speedtest.tokyo.linode.com (106.187.96.148): icmp_seq=2 ttl=47 time=251 ms
64 bytes from speedtest.tokyo.linode.com (106.187.96.148): icmp_seq=3 ttl=47 time=252 ms
64 bytes from speedtest.tokyo.linode.com (106.187.96.148): icmp_seq=4 ttl=47 time=250 ms
64 bytes from speedtest.tokyo.linode.com (106.187.96.148): icmp_seq=5 ttl=47 time=253 ms
64 bytes from speedtest.tokyo.linode.com (106.187.96.148): icmp_seq=6 ttl=47 time=252 ms
64 bytes from speedtest.tokyo.linode.com (106.187.96.148): icmp_seq=7 ttl=47 time=250 ms
^C
--- speedtest.tokyo.linode.com ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6001ms
rtt min/avg/max/mdev = 250.648/251.773/253.536/1.075 ms

jenkinsを運用できるのでしょうか...
負荷のない用途ならば、すごくおすすめです。

2016年11月10日木曜日

PocketMine-MPのプラグインはオープンソースでないといけない!?

よく、二次配布禁止や、難読化をしている、プラグイン制作者がいます。たまたま、BlueLightのsrcのライセンスを読んだのですが、ライセンスがGPLでした。すると、作ったプラグインはライセンスはGPLしか利用できません。なので、"二次配布禁止や、難読化"は禁止されている行為である可能性があります。

ライセンスとは
[それが存在しなければ違法となる行為をすることを許可すること、あるいはその許可を証する書面のことをいう。]まあつまり、通常の著作権を無視し、ライセンスに書いてある通りのことをすれば、勝手にコピーや改造をしてもいいといことです。

今回の問題は?
今回の問題は、srcごとのライセンスの違いです。PocketMine本家、およびClearSkyは、ライセンスとして、LGPLを採用しています。詳細は割愛しますが、このライセンスでは、

・srcの改造をしなおかつそのpharを公開する
この場合には、コードの開示義務が生じます。

・srcを改造し、自分だけが楽しむまたはsrcはいじらずに、プラグインを作る
コードの開示義務が生じません。プラグインだと、ライセンスを好き勝手に決めることができます。

ではNukkit,Genisys,BlueLightのsrcのライセンスはGPLです。

・srcの改造をしなおかつそのpharを公開する
コードの開示義務が生じます。

・srcを改造し、自分だけが楽しむまたはsrcはいじらずに、プラグインを作り、それを公開しない
コードの開示義務が生じません。

・プラグインを作り、それのpharを公開する
この場合は、コードの開示義務が生じます。難読化をしたり二次配布禁止をすることができません。
ではなぜそのような問題が起きるのでしょうか?

原因
LGPLでは、動的リンク($player->getPlayer()のような関数を使うこと)をプラグインがしても、プラグインのライセンスは決定されません。しかし、GPLでは、関数を使うだけでも、プラグインのライセンスをGPLにすることが決定されます。そのことは、ここに書いてあります。https://github.com/Nukkit/Nukkit/blob/master/LICENSE#L668
けれども、PocketMine-MP本家とGenisysのライセンスが食い違っています。しかし、この点に関しての解決策は見つかりません。

結論・対策
Genisysにしかない関数を使うプラグインはライセンスはGPLしか選べないのでしょう。しかし、そうでないプラグインのライセンスは微妙です。本来コードは公開すべきでしょうが、なかなか難しいこともあります。なので、コードを公開しておくことが無難だと思います。

ところで
https://github.com/iTXTech/Genisys/issues/1469 によると、genisysのaiのコードはコピーが禁止されています。わかりにくいですが、注意しましょう。

srcのライセンス分類
GPL

Nukkit
https://github.com/Nukkit/Nukkit/blob/master/LICENSE#L668

Genisys
https://github.com/iTXTech/Genisys/blob/master/LICENSE

BlueLight
https://github.com/BlueLightJapan/BlueLight/blob/master/LICENSE


LGPL

PocketMine/PocketMine-MP
https://github.com/PocketMine/PocketMine-MP/blob/master/LICENSE

pmmp/PocketMine-MP
https://github.com/pmmp/PocketMine-MP/blob/master/LICENSE

ClearSky
https://github.com/ClearSkyTeam/ClearSky/blob/master/LICENSE

minecraft forge(参考)
https://github.com/MinecraftForge/MinecraftForge/blob/1.10.x/LICENSE-new.txt


参考:
https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9
https://www.gnu.org/licenses/gpl-faq.ja.html
https://github.com/Nukkit/Nukkit/blob/master/LICENSE

2016年11月8日火曜日

BlueLightApp開発中...

ただいま、pocketmineのサーバーアプリを作っています



googleplayにて公開予定です。

2016年11月3日木曜日

nginxのリバースプロキシーで広告を入れてみた

jenkinsサーバーを運用しているのだが、これに広告をいれれば、誰か開くんじゃね?と思い入れてみました。
http_sub_moduleとともに、configureしてあげるのもいいが、アプデが怖い。
調べてみると、nginx-fullには、ngx_http_substitutions_filter_moduleが入っていて、これを使えばいけた。

apt install nginx-full

んで、/etc/nginx/conf.dにリバースプロキシーの設定を書く。

server {
  listen          80;
  server_name     jenkins.haniokasai.com;
  location / {
    proxy_pass      http://localhost:8080;
    proxy_set_header Accept-Encoding "";//gzipがなんとからしい
    subs_filter_types text/html; //対象を決める
    subs_filter '</header>'  '</header><script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script><ins class=\"adsbygoogle\"     style=\"display:block\"     data-ad-client=\"かきかえて\"     data-ad-slot=\"かきかえて\"     data-ad-format=\"auto\"></ins><script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
';
  }
}

これで、nginxをリスタートをすると表示される。



/etc/mysql/my.cnf.fallback doesn't existと言われたら(mysql)

apt使ってて

update-alternatives: error: alternative path /etc/mysql/my.cnf.fallback doesn't exist
dpkg: error processing package mysql-common (--configure):
 subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of mysql-client-5.7:
 mysql-client-5.7 depends on mysql-common (>= 5.5); however:
  Package mysql-common is not configured yet.

と言われたとき、


mv /etc/mysql/my.cnf /etc/mysql/my.cnf.d
touch /etc/mysql/my.cnf.fallback 

それで apt -f install


んで


mv /etc/mysql/my.cnf.d /etc/mysql/my.cnf


すればなおる。これでいいかどうかは謎。

[MCPE] MinetをLinuxで動かしてみる!

たぶん、サーバーはlinux使うことが多いでしょうから、linux(ubuntu)で試してみます。 入れとくソフト -git -mono-xbuild -nuget 1.monoの最新版を入れてください ubuntu16.04ならば sudo apt-...