2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

C#, C♯, C#相談室 Part97

1 :デフォルトの名無しさん :2022/12/21(水) 10:18:38.02 ID:DxBIri9+0.net
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

2 :デフォルトの名無しさん :2022/12/22(木) 09:26:53.83 ID:D6FSghNTa.net
この時代になっても相変わらず機械語は逆コンパイルできないと思いこんでるやついるのな

3 :デフォルトの名無しさん :2022/12/22(木) 09:27:54.54 ID:D6FSghNTa.net
こういう機械語にすればセキュリティ上がると思ってるやつが平気でパスワード埋め込むんだよなあ

4 :デフォルトの名無しさん :2022/12/22(木) 10:33:57.58 ID:F1nh9mbrd.net
>>2
C#やJavaといった中間言語に比べたら、圧倒的に可読性が低いでしょ?
できる、できないの、ゼロか100かの議論ではないんだよ
可読性が低いほど、解析されにくくなる。

5 :デフォルトの名無しさん :2022/12/22(木) 10:38:00.37 ID:2NJjkJHb0.net
中途半端な知識を持つものがC#を避ける原因の一つだからな
C++と同レベルの難読性を持つのはC#が生き残るには大事な話だ

6 :デフォルトの名無しさん :2022/12/22(木) 11:35:07.63 ID:GxD81iq9a.net
解析されて困るのはパスワード埋め込んでる時だけだろ
機械語にしてもセキュリティ上がらないからそういうことするのやめとけ

7 :デフォルトの名無しさん :2022/12/22(木) 11:40:40.23 ID:aOWlk2Pu0.net
わざわざ逆アセンブルしなくてもexeから文字列抽出すれば平文パスワードを探せるしねぇ

8 :デフォルトの名無しさん :2022/12/22(木) 12:30:52.54 ID:U1HHZUYmM.net
難読化した処理追えるならマシン語の逆アセ読むくらいは出来るだろ
余分な処理入ってない分、後者のが楽まである

9 ::2022/12/22(木) 12:59:42.23 ID:h+8LnyZL0.net
昔、機械語で書かれたとあるアプリをHEXエディタで開いたら、ASCIIコードで平文のままパスワードが埋め込まれてた事が有ったな

10 :デフォルトの名無しさん :2022/12/22(木) 14:41:12.05 ID:F1nh9mbrd.net
>>6-7
パスワードを暗号化とかして格納するとして、
その場合に暗号化のロジックコードをかんたんに読まれなければ
安全性はかなり高くなる。

11 :デフォルトの名無しさん :2022/12/22(木) 14:45:55.03 ID:hTl9WjWG0.net
パスワードの照合ってハッシュ値を比較するもんだと思ってた
なんかすごい実装してるやついそうだな

12 :デフォルトの名無しさん :2022/12/22(木) 14:52:55.31 ID:HxQ/rgDMa.net
>>10
ならねーよ

13 :デフォルトの名無しさん :2022/12/22(木) 15:06:15.12 ID:HxQ/rgDMa.net
逆コンパイルするじゃん?
コンパイルしてデバッガ使うじゃん?
パスワード送信するところで止めるじゃん?
復号したパスワードを表示するかファイルに書き込むじゃん?
生パスワード手に入るじゃん?

14 :デフォルトの名無しさん :2022/12/22(木) 15:27:07.06 ID:F1nh9mbrd.net
>>13
その手順の詳細はやったことないのでデタラメかわからんが、
そもそもパスワード保存したストレージに他人がアクセスできないという
前提があるんだから問題はないだろう。共用するデバイスであれば、
パスワードを保存しない運用をすればいいだけだから。

あと証券とかセキュリティが重要なアプリはログインパスワードとは別に
取引パスワードとかもあるのが普通。
あとは出金とかのときはSMS認証とかもある会社が増えている。
要するにパスワードなどの認証はひとつである必要もないし、セキュリティ要件などに
あわせて併用すればいいだけ。

15 :デフォルトの名無しさん :2022/12/22(木) 15:30:16.26 ID:F1nh9mbrd.net
>>11
それそれ、たぶんいいたいかったのはそれ。
暗号化したら膨大な時間かけないと複合化できない。
だからハッシュ。
DBの中にもパスワードのハッシュ値を格納するのがふつうなんでしょ、たしか。

>>13
暗号化したものは容易に複合化できないわけだが?
量子コンピューターとかないと無理でしょ
思いつきでいいかげんなこと書いてるでしょ?

16 :デフォルトの名無しさん :2022/12/22(木) 15:49:37.33 ID:4fbwDn1A0.net
>>15
>>10を読んでやれよw
そもそも実行ファイルにパスワード埋め込むなって話をしてるんだぞw

17 :デフォルトの名無しさん :2022/12/22(木) 16:02:26.76 ID:Qca7zyGd0.net
>native codeじゃないとかんたんに
>サーバーの認証のコードが漏れちゃうでしょ
>セキュリティ大事

発端はコレでしょ?
ハッシュでも暗号化文字列でもクライアントに共有シークレット埋め込んでる限り脆弱
少しスキルのある人間に悪用されるのは致し方ないと諦められるものじゃなければ仕組みを変える必要がある

18 :デフォルトの名無しさん :2022/12/22(木) 16:03:27.41 ID:Qca7zyGd0.net
ありゃ
全部同じ人だった

19 :デフォルトの名無しさん (アウアウウー Sa9f-bKpv):2022/12/22(木) 16:13:14.56 ID:UcBjTq9Sa.net
>>18
ああ認証コードがわからないのか
ログインパスワードのことだぞ

20 :デフォルトの名無しさん :2022/12/22(木) 16:39:53.08 ID:2NJjkJHb0.net
パスワードっぽいのを仕込んでおいて遊んでみたい

21 :デフォルトの名無しさん :2022/12/22(木) 16:50:44.38 ID:RLY1K78+0.net
ログインパスワードをハードコードとか斬新だな
APIキーみたいな認証コードの話かと思った

22 :デフォルトの名無しさん :2022/12/22(木) 16:58:48.83 ID:iWtJ1OLb0.net
そんな次元なの?

パスワードの判明ならそれこそパスワードが合ってたかどうか、のif文に相当する命令を反転させたりnopにするという古典的な方法で別にパスワードがどうでも良くなるでしょ。そんなネイティブコンパイルされるか否か程度が問題なら。

アタッチして、パスワードが違うぞってダイアログ出てる状態からジャンプを逆に辿るだけなのでテクニックも何も無い。

何の意味も無くない?

23 :デフォルトの名無しさん :2022/12/22(木) 18:43:36.71 ID:+Rbmc+Rn0.net
>>21
斬新でもなんでもなくて、今ほどセキュリティにうるさくなかった昔には結構あったぞ

結局は要求される強度とかける手間との兼ね合い

24 :デフォルトの名無しさん :2022/12/22(木) 18:48:29.53 ID:HmVrE67C0.net
iniファイルにパスワードがそのまま記述もたまに

25 :デフォルトの名無しさん :2022/12/22(木) 18:58:21.99 ID:y9FZhiQ70.net
悪用って犯罪じゃないの?
警察どこいった?

26 :デフォルトの名無しさん :2022/12/24(土) 11:07:26.72 ID:o3kFQyD40.net
.NETってinternalに良いもん隠しすぎやろ

27 :デフォルトの名無しさん :2022/12/24(土) 18:18:14.65 ID:37MAMfIj0.net
便利機能を使うためにリフレクションで仕方なくアクセスするの面倒すぎる

28 :デフォルトの名無しさん :2022/12/26(月) 17:01:22.79 ID:OeooOgrR0.net
以下のurlにあるライブラリを使ってrar5形式の書庫内にあるファイル一覧を取得しようとしたのですが取れませんでした。
ライブラリのソースを見ましたが、単に7z.dllの内部にある関数を呼んでいるだけのようでした。
7z.dll同梱の7z.exeでファイル一覧の取得、解凍できるのは確認しています。
何が原因かわかる方いらっしゃいますか?

7z.dllのバージョンは21.7.0.0
VisualStudio2019でビルドしました。

ttps://www.codeproject.com/script/articles/viewdownloads.aspx?aid=27148

29 :デフォルトの名無しさん :2022/12/26(月) 17:55:31.33 ID:5LxkM09pa.net
>>28
> 何が原因かわかる方いらっしゃいますか?
プログラマ

30 :デフォルトの名無しさん :2022/12/26(月) 18:31:10.64 ID:bU1T9eUn0.net
どんなコード書いているのかどんなエラーなのか言わないと分かりようが無いw

31 :デフォルトの名無しさん :2022/12/26(月) 18:37:00.63 ID:OeooOgrR0.net
>>30
ライブラリのzipの中のサンプルコードです。

32 :デフォルトの名無しさん :2022/12/26(月) 18:53:53.57 ID:oItrOIBr0.net
それ2008年のでしょrar5に対応してないんじゃないの?

33 :デフォルトの名無しさん :2022/12/31(土) 17:00:08.94 ID:Y1+2Lu7M0.net
ByteArrayContentとReadOnlyMemoryContentの違いってなんかあるの?

34 :デフォルトの名無しさん :2022/12/31(土) 19:10:27.88 ID:1otgbzig0.net
あるよ

35 :デフォルトの名無しさん :2023/01/02(月) 14:11:18.53 ID:AlCNR49a0.net
C#ってC言語で作ったdllを呼べるけど、
そのdllが暗号化されていたのものでもメモリ上で複合化しながら呼べますか?

36 :デフォルトの名無しさん :2023/01/02(月) 14:49:57.94 ID:EJhafa7da.net
俺はできる
お前ができるかは知らん

37 :デフォルトの名無しさん (ワッチョイ 97a7-ChaJ):2023/01/02(月) 15:46:23.56 ID:ChZi0Din0.net
>>35
本来利用してるプロセスが復号化してからロードしているのならその復号化ロジックを自前のC#アプリでも実装しないと呼べない

38 :デフォルトの名無しさん :2023/01/02(月) 20:19:04.23 ID:AlCNR49a0.net
>>37
ありがとうございます

39 :デフォルトの名無しさん :2023/01/04(水) 00:16:32.10 ID:N/2omZ3g0.net
C#ってネイティブなdllも動的にロードできるんだっけ?

40 :デフォルトの名無しさん :2023/01/05(木) 11:22:59.00 ID:ltDktvBL0.net
DLLを動的ロードして関数ポインタを取り出す部分はどっちかというとOSの仕事だしそこはDllImportとかに任せて
関数ポインタさえ手に入れば
.NET 2.0からデリゲートに変換できるメソッドがあるし
C# 9.0でそのまま扱うこともできるようになったよ

41 :デフォルトの名無しさん :2023/01/05(木) 11:51:26.91 ID:pzJhf9FT0.net
>>39
そりゃ当然出来る
型や呼び出し規約を合わせるのは自己責任だが

42 :デフォルトの名無しさん :2023/01/05(木) 13:00:22.76 ID:92Gx4s1W0.net
アンマネージド使うのは自己責任で

43 :デフォルトの名無しさん :2023/01/05(木) 14:07:29.25 ID:HFE02prZr.net
c++/cli 作って橋渡ししてたわ

44 :デフォルトの名無しさん :2023/01/06(金) 00:26:12.47 ID:rNk5rLcjM.net
とあるクラスにあるすべてのプロパティを読み取り専用にしたいんだけど、なにか良い方法ありますか?
やっぱり継承してプロパティの数だけ読み取り専用プロパティで定義するしかない?

45 :デフォルトの名無しさん :2023/01/06(金) 07:59:18.36 ID:vZ5ptmnXd.net
継承させたところで元クラスにアップキャストされたら終わり
constにさせる方法はたぶんないと思う

46 :デフォルトの名無しさん :2023/01/06(金) 12:38:09.71 ID:vCsnZijhM.net
recordにしたら

47 :デフォルトの名無しさん :2023/01/06(金) 12:49:52.37 ID:buYHqiH80.net
C#って地味にこの辺弱いよな
C++のconst ポインタと同等の機能があればReadOnlyCollectionとかReadOnlySpanなんてそもそもいらないのに

48 :デフォルトの名無しさん :2023/01/06(金) 14:18:25.75 ID:QdJf8bLxa.net
C++なら継承して読み取り専用にできると思ってるのか

49 :デフォルトの名無しさん :2023/01/06(金) 14:27:10.69 ID:zhrc9IIn0.net
いや継承は必要なくて、C++なら単にそのクラスのインスタンスを格納する変数や引数の型をconstにするだけで読み取り専用になるよ
TypeScriptもReadOnly<X>とするだけで簡単に読み取り専用のXの型を作れる

50 :デフォルトの名無しさん :2023/01/06(金) 15:16:54.53 ID:QdJf8bLxa.net
方法が違うだけでC#でも簡単にできるだろw

51 :デフォルトの名無しさん :2023/01/06(金) 17:46:49.43 ID:MJJvxMZsa.net
>>50
どうやるの?

52 :デフォルトの名無しさん :2023/01/06(金) 19:39:06.39 ID:7HwChuQ+0.net
>>49
それ、そのクラスのプロパティも読み取り専用になるのか?

234 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver.24052200