ビューア開発 – javaのexeラップと難読化と最大ヒープ領域

投稿日: 更新日:

二日前、難読化がよくわからないからexeでラップして公開してたけど、普通にexeからjar取り出せた^^;
具体的には、ラップ化にexewrapというのを使わせて頂いているのですが、
exe化した後、普通にリソースとして存在してました。
リソースではpack200という拡張子が「*.pack.gz」のような形で格納されているのですが、
普通にJava1.6のjreパッケージに含まれてる「unpack200.exe」っていうソフトで「*.jar」に戻せます。
「*.jar」はzip形式なので、そのままはい。classに。はい。
それで、いい加減、難読化の方法を調べました。
結果は、ProGuardっていうので簡単に出来た。
方法は普通にダウンロードしてきて、中の「./lib/proguardgui.jar」を実行するとGUIが表示される。
inputから難読化したい「*.jar」を選択。outputで出力先決めて、後は省略して「Process!」押せば完成。
ほんのちょっとだけ時間掛かるけど、すぐに出力先に難読化されたjarが出来てる。
ちなみに、自分の場合サイズがjarが難読化前に比べて半分近くになった。
あと、ヒープ確保の件なんだけど、exewrapで変換する時、
うまく引き数で与えれば最大ヒープ領域の容量を宣言した上で、自動的に起動できることが分かりました。
プログラムの上での最大ヒープ領域の指定のやり方は分からないけど、一応Windows環境ならこれでうん。
やり方は、こんな感じ、「exewrap.exe -g -e NOLOG -a “-Xmx256M”」みたいにVM引き数を追加すればOK。
画像処理の話題に変わるけど、
昨日は、単純減色と誤差拡散減色と組織的ディザ法減色を追加してみた。
組織的ディザ法ではipmpackでまたしてもバグ発見した。
というかアルゴリズム間違ってると思う。うん。
1番目に近い色と2番目に近い色の2色を調べないといけないんだけど、
距離を基準にするんじゃなくて、Absを使ったのを基準にしないと綺麗にならないらしい。
それと、ディザリングパターンの中で、最大の数を最後に割ってたんだけど、本当は「最大の数+1」を最後に割らないといけない。
こうしないと、黒はうまく減色できるんだけど、白はぶつぶつと不必要な点が出てしまう。うん。
あとはメディアンカット。
以前はアルゴリズムがうまくいかずに、結局32色までしか対応できなかったけど、今回はどうかな。
一応対応させたい。
それとレンズぼかし。
これRとGとBを別々に浮動少数で計算しないといけなくて、一度浮動少数に格納したいんだけど、
画像処理関係の精度ならfloatで十分だと思う。DirectXのHDRレンダリング技術だって内部はfloatで計算してるし。

ただ速度をとるならdouble。←後で分かったのですが、floatの方が速いです。

alpha版のダウンロード 404になってたらすいませんm(_ _)m


完成した画像処理のツールは、Javaアプレット版は、こちらから試すことが出来ます。

広告

コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中