HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0608
忠敬君自プロセスが終了されることを検出したい25未解決


忠敬君

リンク

2013/6/8(Sat) 01:03:23|NO.54666

自プロセスが終了しようとすることを検出してメッセージボックスを出したり
外部プロセスが自プロセスを終了しようとしてることって検出できますか??
よければサンプルソースなどを書いていただけると嬉しいです



この記事に返信する


_hamyuu

リンク

2013/6/8(Sat) 13:44:49|NO.54687

onexit命令で終了するときに指定したラベルに飛べますよ。
onexit goto *test
stop *test dialog"終了します!" end



忠敬君

リンク

2013/6/8(Sat) 15:31:09|NO.54689

ふむふむ。

他プロセスからの終了は検出できないかなあ。。



test

リンク

2013/6/8(Sat) 16:36:32|NO.54692

試してみなかったのですか?
onexitで他プロセスからの終了も検出できます。

もしできなかったなら、どういう場合にできなかったのかを詳しく書けば回答がもらえるかもしれません。



cats

リンク

2013/6/8(Sat) 16:51:02|NO.54696

>忠敬君さん
プロセスの保護は改造されると危険なプログラムになるので
公にサンプルは晒せないでしょう。



岡田

リンク

2013/6/9(Sun) 23:16:51|NO.54771

自プロセス終了の検出する目的はなんですか?
場合によってはお答えできません。



名無し

リンク

2013/6/15(Sat) 18:10:38|NO.54918

起動してるプロセスのリストを取得してうまくやればできるのではないでしょうか?お互いにお互いが起動してるか監視しつd・・・おっと、誰か来たようだ



忠敬君

リンク

2013/6/15(Sat) 18:43:03|NO.54920

名無しさん

できるものなんですかねーー。。。



名無し

リンク

2013/6/15(Sat) 19:26:42|NO.54922

できますよ。ただ、ソースを書くことはできません。



忠敬君

リンク

2013/6/15(Sat) 19:37:27|NO.54923

ほう。。
>catsさんが

>忠敬君さん
プロセスの保護は改造されると危険なプログラムになるので
公にサンプルは晒せないでしょう。


って記載されたんですが

exitを検出で何か悪用できることとかあるんでしょうか?w



名無し

リンク

2013/6/15(Sat) 20:05:01|NO.54925

>忠敬君さん
もろ悪用できます。少し考えてみては?



ht.

リンク

2013/6/15(Sat) 22:19:09|NO.54927

憶測ですがタスクマネージャとかTerminateProcessによるプロセスの強制終了だと
検知しようがしまいが対象のプロセス空間からはいかなる阻害も不可能だと思います。
そうでないと強制でもなんでもなくただの任意終了になってしまうので。
というわけで意図されない終了を検知するならプログラムを多重に起動して互いを監視しつつ
片方が終了されても作業データを復旧できるように共有メモリなどに保存するとか、そういう工夫が必要になると思います。
ミューテックスオブジェクトを使った多重起動防止とか、共有メモリならHSPでも頻繁に公開されている情報なので隠すほどのことでもありません。

もっとスマートな方法があったら私も知りたいですね。



shiva

リンク

2013/6/16(Sun) 01:24:20|NO.54930

ユーザー視点で考えると、「終了できないプロセス」というのは
非常に気味の悪い存在ではないでしょうか。

ある日ダウンロードしたソフトが何度「×」をクリックしても無視して居座るとか、
タスクマネージャーにまったく反応しなかったら、それを好んで使う人は
そう多くないと思います。

改めてお聞きしますが、どうして「外部からの自プロセス終了」を検知したいのでしょうか?
目的によっては、他の手段があるかもしれません。



忠敬君

リンク

2013/6/16(Sun) 01:55:14|NO.54933

shivaさん

>>改めてお聞きしますが、どうして「外部からの自プロセス終了」を検知したいのでしょうか?
自プロセスを終了させたプロセスが悪意のあるプロセスか悪意のないプロセスを判断したいからです。
悪意のあるプロセスから終了を検出しようとしたら逆にそのプロセスを終了したいと考えておりまして、
悪意のない、タスクマネージャー等からの終了はきちんと応答したいと思ってます。



悪意のあるプロセス

リンク

2013/6/16(Sun) 03:00:36|NO.54934

と思ってます。



ht.

リンク

2013/6/16(Sun) 06:44:07|NO.54938

正直終了元のプロセスが悪意を持っているかどうかなど判断のしようがないので諦めた方がいいと思います。
予め悪意の持ったプロセスとやらが判明していればDLLインジェクションとAPIフックで他プロセスに寄生して検知+無効化できるかも…
インターセプト用のDLLを作成する必要があるのでCが書けないと無理ですが。



shiva

リンク

2013/6/16(Sun) 15:00:17|NO.54946

まず覚えておいていただきたいことは、プロセス終了はユーザーが持つ当然の権利である、ということです。
参考(英語):"Why can't you trap TerminateProcess? - The Old New Thing"
http://blogs.msdn.com/b/oldnewthing/archive/2004/07/22/191123.aspx

この「当然の権利」を無視してでも終了を阻止するつもりなら、いずれ相応の報いを受けることを
覚悟しておく必要があるでしょう。

さて、先のコメントにはタスクマネージャー等からの要求なら受け入れるとありますから、
強制終了されること自体は別に困らないように思えます。
にも関わらずこのスレッドを建てたという事は、終了されたくない別の理由があるはずです。

タスクマネージャー等は構わないのに、それ以外からだと困る、その理由は何ですか?



忠敬君

リンク

2013/6/16(Sun) 15:38:13|NO.54947

ht.さん
なるほどですね。
ほかのプロセスを監視しないといけなくなるのですねー。。

shivaさん
>>プロセス終了はユーザーが持つ当然の権利である
自プロセスはちゃんと終了させることはできるようにします。
(×でプロセス終了)


>>さて、先のコメントにはタスクマネージャー等からの要求なら受け入れるとありますから、
強制終了されること自体は別に困らないように思えます。
にも関わらずこのスレッドを建てたという事は、終了されたくない別の理由があるはずです。
タスクマネージャー等は構わないのに、それ以外からだと困る、その理由は何ですか?

強制終了されて困ることの理由の一つは
自プロセスが悪意のあるプロセスに逆アセンブルされることです。
つまり自プロセスが他のプロセスに逆アセンブルされて中身を改竄されることを防ぎたいわけです。
なのでタスクマネージャーからの終了にはちゃんと応答するということであります。
悪意のあるプロセスを検出すると、ある一定の時間だけ自プロセスを操作しないようにして、
一定の時間を過ぎるとちゃんと動くようにします。その一定の時間だけ、悪意のあるプロセス
からの終了を防ぎたいわけです。
こうすることによって、悪いユーザーが自プロセスの中身を見る気を失せさせるというのが
目的です。



ht.

リンク

2013/6/16(Sun) 15:48:31|NO.54948

ん?強制終了と逆アセンブルされることの関連性が見えてこないのですがどういうことですか?
前にも言いましたがHSPでそんな強固な改竄防止をすることは原理的に不可能です。



忠敬君

リンク

2013/6/16(Sun) 16:15:39|NO.54949

ht.さん

まず、指定プロセスを一定間隔で列挙するようにしておき、
指定プロセスが見つかると自分で自分を閉じれません。(何かしらの警告ダイアログを出す)
その指定プロセスを閉じるまで操作不可能にするだけのことです。



KA

リンク

2013/6/16(Sun) 16:22:54|NO.54950

良く分からないが、他プロセスが「正常な終了処理」を行えば意味が無い。
極端な例で言うと、リモートでマウスを操作されたら分からない。

それから、話だけで具体的なスクリプトが出てこないのは初心者だから?



ht.

リンク

2013/6/16(Sun) 17:05:24|NO.54951

>まず、指定プロセスを一定間隔で列挙するようにしておき、
>指定プロセスが見つかると自分で自分を閉じれません。(何かしらの警告ダイアログを出す)
>その指定プロセスを閉じるまで操作不可能にするだけのことです。
その回答は私がした質問(以下の強制終了と逆アセンブルの関連性)の回答になっていないと思うのですが。
>強制終了されて困ることの理由の一つは
>自プロセスが悪意のあるプロセスに逆アセンブルされることです。

いまいち要領を得ないので一から質問し直したいです。
1, 何を作っているのか
2, 悪意のあるプロセスとは何か
3, それをどのように判断するのか(ソフトウェアのタイトルが割れている等)
4, 自分を操作不可能にする利点はあるのか(何を警告するのか)
5, onexitでは解決できないのか
6,強制終了されると逆アセンブルが可能になるという理屈はどういう意味なのか



忠敬君

リンク

2013/6/16(Sun) 17:06:56|NO.54952

>>KAさん
良く分からないが、他プロセスが「正常な終了処理」を行えば意味が無い。
極端な例で言うと、リモートでマウスを操作されたら分からない。
それから、話だけで具体的なスクリプトが出てこないのは初心者だから?



なるほど。。
まあ確かに初心者です;;



ZAP

リンク

2013/6/16(Sun) 17:07:26|NO.54953

逆アセンブルしたり改ざんしたりしたくなるような、それこそネット上に類を見ない
先進性のあるプログラムなら、セキュリティも考えて他の言語で書くべきではないでしょうか。

それに解析だけなら、そのソフト自体を起動していなくても出来ると思いますので
起動中のプロセスを監視するだけでは、目的は達成できないのではないでしょうか。



忠敬君

リンク

2013/6/16(Sun) 17:32:24|NO.54954

>>ZAPさん
それに解析だけなら、そのソフト自体を起動していなくても出来ると思いますので
起動中のプロセスを監視するだけでは、目的は達成できないのではないでしょうか。



バイナリデーターだけを読み込まれるのは確かに無理ですよね。。



KA

リンク

2013/6/16(Sun) 17:40:13|NO.54955

>>バイナリデーターだけを読み込まれるのは確かに無理ですよね。。

根本的に、基本的な何かを知らないのか、知った上での発言なのか不明。



ONION software Copyright 1997-2023(c) All rights reserved.