設定をDLLに保存したい

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
雷電
記事: 104
登録日時: 2006年8月21日(月) 14:26
お住まい: 兵庫県
連絡する:

設定をDLLに保存したい

#1 投稿記事 by 雷電 »

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

ヘビーユーザーの方意見をお願いします。
===============================
MyHomePage;; raiden.no.land.to/
===============================
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 by konisi »

ABで生成されるDLLに限ったことではないのですが、DLL内には多数のNULL空間があります。
そこに書き込んでみればどうでしょうか?

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

追記:ABのDLLを一つ調べてみたのですが、DLLファイルの0x0300~0x0FFFのあたり(10進数で書くと、768番地~4095番地かな?)が空いていました。ただし、書き換えても問題ないとは限りません。十分注意して(機械語を書き換えないように と言う意味でも)やってください。
最後に編集したユーザー konisi [ 2006年8月27日(日) 20:51 ], 累計 1 回
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
雷電
記事: 104
登録日時: 2006年8月21日(月) 14:26
お住まい: 兵庫県
連絡する:

#3 投稿記事 by 雷電 »

やはりそういうのを自分で探さないといけないんですか
機械語レベルはちょっと、遠慮したくなりますが・・・

そう言うのを見つける関数などありましたら紹介お願いします。
===============================
MyHomePage;; raiden.no.land.to/
===============================
ゲスト

#4 投稿記事 by ゲスト »

と言うよりDLLに設定を書き込む時点でDLL本来の意味が活かされていないと思います。
素直にバイナリで暗号化したほうが安全だと思いますし。
ケースケ
記事: 45
登録日時: 2005年5月31日(火) 23:46
お住まい: 愛知県
連絡する:

それ以前に・・・

#5 投稿記事 by ケースケ »

自分が使っているDLLは書き込みオープンできません。


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

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



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

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

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


それより、ゲストさんの仰るとおり暗号化して普通に書き込んだほうが安全かと思います。
隠しファイルのシステムファイル属性でも付ければ大丈夫ではないでしょうか?
雷電
記事: 104
登録日時: 2006年8月21日(月) 14:26
お住まい: 兵庫県
連絡する:

#6 投稿記事 by 雷電 »

そのほうがよさそうですね
貴重なご意見ありがとうございました。
===============================
MyHomePage;; raiden.no.land.to/
===============================
返信する