投稿

11月, 2016の投稿を表示しています

[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/

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で逆アセンブルする!libminecraftpe.soをWindowsで逆アセンブルする!

これを使うと、どうやら、パケットや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
@haniokasai DecMcpeはまだ開発中だから、正規表現のミスとか新しいバージョンの対応とかできてないんやでー— tomotomo (@tomocrafter) 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

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

イメージ
どうも。haniokasaiです。高1のわたしですけど、長い間勃つ立つのはつらいものがあります。
ちょっとした休憩に便利かも?
ポケットに入る携帯チェア
「sitpack」の詳細はこちら https://t.co/nL8xXVEh7u#bouncy#technologypic.twitter.com/M9tjoLz0Wz — bouncy / バウンシー (@bouncy_news) 2016年11月12日

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

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

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

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

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

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

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

(ケース)


やわらかい?

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






展開してみた


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



どーん!

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://$username@github.com\':\"
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

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

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


uiはいい感じ。
アムステルダムリージョンは、日本からだと非常に遅いので、注意。
osの更新ペースはよさそう。


cpuはatom
root@web:~# 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 …

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のライセンスが食い違って…

BlueLightApp開発中...

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



googleplayにて公開予定です。

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

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