/ システムソリューション部
Tweet
シェア
システム開発ブログ
最近の記事
- Chrome for Androidの新機能、Chrome to Mobileを試す
- ファイルサーバのBCP対策(アイロベックスの場合)
- Illustratorの矢印機能でラクラク矢印作成!
- システム会社選びのポイント
- システム保守の移管費用を抑えます
- アイロベックス通信発行してます
- ボタンのデザインをxmlで定義する
- Excel2010で行コピーをした場合に、画像ファイルのサイズが変わらないようにする
- Power Point2010 でスライド番号をつける方法
- Photoshop の秘宝
カテゴリー
- HTML全般 (2)
- Access (15)
- Android (5)
- .NET (14)
- Excel (9)
- Google Apps (5)
- HTML5 (3)
- iPhone (8)
- JAVA (14)
- Linux (7)
- Movable Type (15)
- MySQL (7)
- OpenOffice (10)
- Oracle (6)
- PHP (20)
- SQLServer (4)
- twitter (6)
- VBA (11)
- Webサイト構築・Web戦略 (32)
- Webサイト構築事例 (4)
- Windows (10)
- その他 (29)
- アクセス解析 (2)
- ウィジェット (1)
- システム設計 (5)
- システム開発事例 (3)
- システム開発体制 (1)
- セキュリティ (5)
- データベース (20)
- プロジェクト管理 (8)
- 品質管理・テスト (6)
- 帳票 (3)
- 技術活用 (6)
- 運用・保守 (8)
部署
- システム開発事業部 (33)
- ビジネスソリューション課 (17)
- システムソリューション事業部 (32)
- 流通システム部 (76)
- 産業システム部 (93)
- ソフトウエア開発部 (56)
- Webコンサルティング部 (97)
- 企画開発部 (37)
- 部長インタビュー (3)
月別アーカイブ
- 2012年2月 (6)
- 2012年1月 (18)
- 2011年12月 (19)
- 2011年11月 (22)
- 2011年10月 (29)
- 2011年9月 (28)
- 2011年8月 (5)
- 2011年7月 (18)
- 2011年6月 (15)
- 2011年5月 (21)
- 2011年4月 (8)
- 2011年3月 (12)
- 2011年2月 (12)
- 2011年1月 (13)
- 2010年12月 (18)
- 2010年11月 (19)
- 2010年10月 (19)
- 2010年9月 (21)
- 2010年8月 (17)
- 2010年7月 (21)
- 2010年6月 (22)
- 2010年5月 (14)
- 2010年4月 (12)
- 2010年3月 (13)
- 2010年2月 (9)
- 2010年1月 (12)
- 2009年12月 (7)
- 2009年11月 (6)
- 2009年10月 (8)
- 2009年9月 (7)
- 2009年8月 (3)
- 2009年7月 (1)
- 2009年6月 (3)
- 2009年5月 (1)
- 2009年4月 (1)
- 2009年3月 (8)
- 2009年2月 (10)
- 2009年1月 (1)
- 2008年12月 (1)






システムソリューション部 / セキュリティ / データベース
PL/SQLをコンパイルするとデータベースに配置されますが、通常、そのPL/SQLはソースコードを見ることが可能です。
もし、見られたくない情報が記述されている場合、どのような対応策をとればよいでしょうか?
対応策の一つとして、wrapというOracleのユーティリティを使うことで、PL/SQLのソースコードを難読化することができます。
wrapユーティリティはOracleをインストールすると使えるようになります。(Database、Clientのどちらでも可)
コマンドプロンプトで入力して使用します。
入力方法は、SAMPLE.sqlを例にすると下記のようになります。
D:\works\plsql>wrap iname=SAMPLE.sql
PL/SQL Wrapper: Release 10.2.0.1.0- Production on 水 1月 27 21:29:45 2010
Copyright (c) 1993, 2004, Oracle. All rights reserved.
Processing SAMPLE.sql to SAMPLE.plb
D:\works\plsql>
上記のように、SAMPLE.sql から SAMPLE.plb というファイルが生成されているのが分かります。
後は、この生成されたSAMPLE.plbを普通のPL/SQLと同様にしてコンパイルを行えば、
ソースコードが難読化された状態でデータベースに配置されます。
Oracle Database 11g Release 11.1.0.7.0 - Production
に接続されました。
SQL> @D:\works\plsql\SAMPLE.plb
パッケージが作成されました。
エラーはありません。
パッケージ本体が作成されました。
エラーはありません。
SQL>
これで、PL/SQLのソースコードの難読化は完了です。
ただし、wrapで難読化されたコードでも解析される可能性はあります。
(もちろん、誰でも解析できるわけではなく相応の実力が必要になりますが。)
「簡単にソースを読ませない」ための対応という位置づけで使用するのが望ましいでしょう。
ちなみに下記が難読化の例に使用したPL/SQLになります。
<難読化前のPL/SQLソースコード> - SAMPLE.sql
-- パッケージ
CREATE OR REPLACE PACKAGE SAMPLE
IS
PROCEDURE MAIN (INC_LOGIN_ID IN VARCHAR2);
END SAMPLE;
/
SHOW ERROR;
-- パッケージボディ
CREATE OR REPLACE PACKAGE BODY SAMPLE
IS
PROCEDURE MAIN(INC_LOGIN_ID IN VARCHAR2)
IS
CO_PGID CONSTANT VARCHAR2(40) := 'MAIN';
BEGIN
-- コードを記述
DBMS_OUTPUT.PUT_LINE('PGID = ' || PGID);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END MAIN;
END SAMPLE;
/
SHOW ERROR;
<難読化後のPL/SQLソースコード> - SAMPLE.plb
CREATE OR REPLACE PACKAGE SAMPLE wrapped
a000000
340
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
9
4c 85
JdtEtOb/U0tshzT2yXjK2k5/K1Ewg5m49TOf9b9c55/SsqVSQ5t0iwZ055u/nzK9ssBcpTLS
0l5QpdLHSv4Iv/7Sbf71zKaeFkatOa0SVzmI3qPHUr6SvmeBo4Kmph51084=
/
SHOW ERROR;
CREATE OR REPLACE PACKAGE BODY SAMPLE wrapped
a000000
340
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
b
f3 113
oxLkV60ikUSGCTdjDsDwa984s1owgyrQcp4VfHTU7WGu9xP94+MwwDB9g0tEsaDfkKrcELXE
SzLnoc7nnc+hUS2/gqhfrxBnX9CZJ9M74J5vVewvNKi543mTFaJxhft/3esU2hP1uQ0nU8Jr
2/RxtlYxuCuqUZhuIzLtr7yIzVs7YNgiMpFtYU20j0uGZpPLcG2cJmRuK85hBIICYJ3JkedC
1BRp9vY+eCM+ONdS18bsAajU3ByZ6F0THcL4kCR96GG7QFUf6BitUA==
/
SHOW ERROR;
「システム開発ブログ」へのコメントやご意見等ありましたら、ファンページまでお願いします。 Facebook のファンページ
他社のシステムも直します。資産を活かしてシステムリフォーム