ページ 11

設定をDLLに保存したい

Posted: 2006年8月27日(日) 20:33
by 雷電
前回から引き続き質問させていただきます。
INIに保存するという方法を前は使いました。
ただ今回暗号化について考えてみたのですが、設定をDLLに保存できないかと考えました。
そこでいろいろ探してみたのですが、自分で実装するのも非常に難しそうで。。。
でもやってみるのも経験なので作ってみたいのですが、暗号化をかけつつ、DLLに保存する方法はありますでしょうか?

ヘビーユーザーの方意見をお願いします。

Posted: 2006年8月27日(日) 20:39
by konisi
ABで生成されるDLLに限ったことではないのですが、DLL内には多数のNULL空間があります。
そこに書き込んでみればどうでしょうか?

※NULL空間かどうかを判定するのは機械語レベルでやってたりするとそうとうタルいです。とりあえず0x00(&H0)が大量に続いている場所を探すのが妥当かと。

追記:ABのDLLを一つ調べてみたのですが、DLLファイルの0x0300~0x0FFFのあたり(10進数で書くと、768番地~4095番地かな?)が空いていました。ただし、書き換えても問題ないとは限りません。十分注意して(機械語を書き換えないように と言う意味でも)やってください。

Posted: 2006年8月27日(日) 20:50
by 雷電
やはりそういうのを自分で探さないといけないんですか
機械語レベルはちょっと、遠慮したくなりますが・・・

そう言うのを見つける関数などありましたら紹介お願いします。

Posted: 2006年8月28日(月) 00:43
by ゲスト
と言うよりDLLに設定を書き込む時点でDLL本来の意味が活かされていないと思います。
素直にバイナリで暗号化したほうが安全だと思いますし。

それ以前に・・・

Posted: 2006年8月28日(月) 08:09
by ケースケ
自分が使っているDLLは書き込みオープンできません。


ちょっと試してみたのですが、Declareで宣言した関数を含むDLLは、読み取りアクセスはできても書き込みアクセスはできません。
だから、自分の使っていないDLLにしか設定を書き込めないことになります。

自分は使わないけど保存用のDLLがあるってのは、何だか矛盾していると思いますが・・・。



どうしても設定ファイルを出したくないなら、実行ファイルを二つ作って(甲、乙)、

1.甲が終了間際に乙を起動
2.乙に保存内容を渡して甲は終了
3.乙は終了した甲のNULL領域に設定を書き込む

という流れが考えられますが・・・↓同じアイディアでアイコンを変えるサンプル。
http://www.activebasic.com/forum/viewtopic.php?t=1154


それより、ゲストさんの仰るとおり暗号化して普通に書き込んだほうが安全かと思います。
隠しファイルのシステムファイル属性でも付ければ大丈夫ではないでしょうか?

Posted: 2006年8月28日(月) 19:08
by 雷電
そのほうがよさそうですね
貴重なご意見ありがとうございました。