X



C#, C♯, C#相談室 Part97
0001デフォルトの名無しさん (ワッチョイ d707-bKpv)
垢版 |
2022/12/21(水) 10:18:38.02ID:DxBIri9+0
!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
0004デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/22(木) 10:33:57.58ID:F1nh9mbrd
>>2
C#やJavaといった中間言語に比べたら、圧倒的に可読性が低いでしょ?
できる、できないの、ゼロか100かの議論ではないんだよ
可読性が低いほど、解析されにくくなる。
0009◆xETmWn3d3U (ワッチョイ f3b1-N2O4)
垢版 |
2022/12/22(木) 12:59:42.23ID:h+8LnyZL0
昔、機械語で書かれたとあるアプリをHEXエディタで開いたら、ASCIIコードで平文のままパスワードが埋め込まれてた事が有ったな
0010デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/22(木) 14:41:12.05ID:F1nh9mbrd
>>6-7
パスワードを暗号化とかして格納するとして、
その場合に暗号化のロジックコードをかんたんに読まれなければ
安全性はかなり高くなる。
0013デフォルトの名無しさん (アウアウウー Sa9f-bKpv)
垢版 |
2022/12/22(木) 15:06:15.12ID:HxQ/rgDMa
逆コンパイルするじゃん?
コンパイルしてデバッガ使うじゃん?
パスワード送信するところで止めるじゃん?
復号したパスワードを表示するかファイルに書き込むじゃん?
生パスワード手に入るじゃん?
0014デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/22(木) 15:27:07.06ID:F1nh9mbrd
>>13
その手順の詳細はやったことないのでデタラメかわからんが、
そもそもパスワード保存したストレージに他人がアクセスできないという
前提があるんだから問題はないだろう。共用するデバイスであれば、
パスワードを保存しない運用をすればいいだけだから。

あと証券とかセキュリティが重要なアプリはログインパスワードとは別に
取引パスワードとかもあるのが普通。
あとは出金とかのときはSMS認証とかもある会社が増えている。
要するにパスワードなどの認証はひとつである必要もないし、セキュリティ要件などに
あわせて併用すればいいだけ。
0015デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/22(木) 15:30:16.26ID:F1nh9mbrd
>>11
それそれ、たぶんいいたいかったのはそれ。
暗号化したら膨大な時間かけないと複合化できない。
だからハッシュ。
DBの中にもパスワードのハッシュ値を格納するのがふつうなんでしょ、たしか。

>>13
暗号化したものは容易に複合化できないわけだが?
量子コンピューターとかないと無理でしょ
思いつきでいいかげんなこと書いてるでしょ?
0017デフォルトの名無しさん (ワッチョイ 2a01-ekyc)
垢版 |
2022/12/22(木) 16:02:26.76ID:Qca7zyGd0
>native codeじゃないとかんたんに
>サーバーの認証のコードが漏れちゃうでしょ
>セキュリティ大事

発端はコレでしょ?
ハッシュでも暗号化文字列でもクライアントに共有シークレット埋め込んでる限り脆弱
少しスキルのある人間に悪用されるのは致し方ないと諦められるものじゃなければ仕組みを変える必要がある
0022デフォルトの名無しさん (ワッチョイ 535f-f2OJ)
垢版 |
2022/12/22(木) 16:58:48.83ID:iWtJ1OLb0
そんな次元なの?

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

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

何の意味も無くない?
0025デフォルトの名無しさん (ワッチョイ 535f-8Cre)
垢版 |
2022/12/22(木) 18:58:21.99ID:y9FZhiQ70
悪用って犯罪じゃないの?
警察どこいった?
0028デフォルトの名無しさん (ワッチョイ f34b-IkUo)
垢版 |
2022/12/26(月) 17:01:22.79ID:OeooOgrR0
以下の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
0035デフォルトの名無しさん (ワッチョイ 4e10-Rw9z)
垢版 |
2023/01/02(月) 14:11:18.53ID:AlCNR49a0
C#ってC言語で作ったdllを呼べるけど、
そのdllが暗号化されていたのものでもメモリ上で複合化しながら呼べますか?
0038デフォルトの名無しさん (ワッチョイ 4e10-Rw9z)
垢版 |
2023/01/02(月) 20:19:04.23ID:AlCNR49a0
>>37
ありがとうございます
0040デフォルトの名無しさん (ワッチョイ 5b4f-9j0N)
垢版 |
2023/01/05(木) 11:22:59.00ID:ltDktvBL0
DLLを動的ロードして関数ポインタを取り出す部分はどっちかというとOSの仕事だしそこはDllImportとかに任せて
関数ポインタさえ手に入れば
.NET 2.0からデリゲートに変換できるメソッドがあるし
C# 9.0でそのまま扱うこともできるようになったよ
0044デフォルトの名無しさん (ドコグロ MMf7-ETcA)
垢版 |
2023/01/06(金) 00:26:12.47ID:rNk5rLcjM
とあるクラスにあるすべてのプロパティを読み取り専用にしたいんだけど、なにか良い方法ありますか?
やっぱり継承してプロパティの数だけ読み取り専用プロパティで定義するしかない?
0045デフォルトの名無しさん (スプッッ Sdba-kLll)
垢版 |
2023/01/06(金) 07:59:18.36ID:vZ5ptmnXd
継承させたところで元クラスにアップキャストされたら終わり
constにさせる方法はたぶんないと思う
0049デフォルトの名無しさん (ワッチョイ 9365-IAh0)
垢版 |
2023/01/06(金) 14:27:10.69ID:zhrc9IIn0
いや継承は必要なくて、C++なら単にそのクラスのインスタンスを格納する変数や引数の型をconstにするだけで読み取り専用になるよ
TypeScriptもReadOnly<X>とするだけで簡単に読み取り専用のXの型を作れる
0051デフォルトの名無しさん (アウアウウー Sac7-7txW)
垢版 |
2023/01/06(金) 17:46:49.43ID:MJJvxMZsa
>>50
どうやるの?
0053デフォルトの名無しさん (アウアウウー Sac7-IAh0)
垢版 |
2023/01/06(金) 20:12:53.98ID:KHJficEWa
>>52
C++のconstの場合は、フィールドが全て読み取り専用になり、読み取り専用(const)としてマークされたメソッドしか呼べなくなる
TypeScriptのReadonly<>の場合は、全プロパティが読み取り専用になった「型」が生成される
TypeScriptというかJSではメソッドは単に関数を返すプロパティなので、メソッドの内容には特に関知しない
0059デフォルトの名無しさん (スッププ Sdb3-BvPj)
垢版 |
2023/01/07(土) 13:51:35.25ID:unZBLw7Xd
質問者は既存のミュータブルなクラスのプロパティを読み取り専用にしようとしている
>>54だと同じプロパティを全部定義し直さなきゃいけないし、元のクラスからコピーする手間も必要だ
>>49の方法であればプロパティを定義し直す必要もコピーする必要もない
0064デフォルトの名無しさん (ワッチョイ 9301-GR7q)
垢版 |
2023/01/07(土) 17:38:18.83ID:mDCtTa800
君たち的に.NET MAUIでandroid,iphone,WindowsでC#のネタ帳的なの作ったら協力してくれる?
小ネタ集みたいなのを各々がSQLで保存してそれをカテゴリ分けで見れるようにするやつ
例えばRestAPI関係だったりの基本的な書き方を表示したりできる
ネットで調べれば一発だが1つにまとまってるのは利点かと、、、
0065デフォルトの名無しさん (ワッチョイ 1176-1Rsz)
垢版 |
2023/01/07(土) 17:48:11.52ID:odL5Q3k30
wiki立ち上げればええやん
0067デフォルトの名無しさん (ワッチョイ b101-phWz)
垢版 |
2023/01/07(土) 18:08:54.54ID:St5PAkDm0
winui3でよくね?
0068デフォルトの名無しさん (オイコラミネオ MM5d-DSRP)
垢版 |
2023/01/07(土) 18:14:01.42ID:FC273Y3JM
と言うよりいい加減いくつフレームワーク立ち上げれば済むんだよ

モバイル関連は全部html+jsにしてデバイスを仮想サーバにしてそいつにREST api投げてjsonでセンサ値とか取るようにすればいい
そしたらもう再生産しなくていい
0070デフォルトの名無しさん (ワッチョイ 9301-GR7q)
垢版 |
2023/01/07(土) 18:24:07.38ID:mDCtTa800
>>69
なるほど
0073デフォルトの名無しさん (ワッチョイ b101-phWz)
垢版 |
2023/01/07(土) 18:44:15.99ID:St5PAkDm0
ここにまでマウイ出張ってきたか
ちゃんとワッチョイを恐れろよ
0077デフォルトの名無しさん (ワッチョイ 515f-DWwd)
垢版 |
2023/01/07(土) 22:07:32.34ID:8LnSupdD0
>>64
> 例えばRestAPI関係だったりの基本的な書き方を表示したりできる
今からこの手のサービスやってもCopilotに勝てないだろ
0078デフォルトの名無しさん (ワッチョイ 9301-GR7q)
垢版 |
2023/01/07(土) 23:32:10.91ID:mDCtTa800
>>77
copilotって別にこれしたいって言えば全部記入してくれるわけじゃなくね?
俺としてはあぁRestAPIの使い方ど忘れした~
なんだったっけ???ってGoogleで調べる時間をアプリで素早く検索できるって感じのものを作りたいかな
2,3回やったことあるやつでもどうだったっけ?って忘れることままある
まぁGoogleとかでいいんだけど1つのアプリにまとまってるってのはなかなか便利なんじゃないかなと…
0079デフォルトの名無しさん (ワッチョイ 9301-GR7q)
垢版 |
2023/01/07(土) 23:32:40.09ID:mDCtTa800
自分で追加もできるしな
0083デフォルトの名無しさん (ワッチョイ 1176-1Rsz)
垢版 |
2023/01/08(日) 16:25:49.80ID:+2bxRzY60
A a=new B(); とかで、実体がB型かもしれないならBにキャストすればいい。
A a=new A(); でA型そのものだったらそもそもこの話は成立しない。

list.Add((B)a);
0085デフォルトの名無しさん (ワッチョイ 9301-GR7q)
垢版 |
2023/01/08(日) 16:50:26.87ID:+xzWagUM0
>>80
継承じゃなくてBクラスにAクラスのプロパティのリストを入れる場合はたしかいけたぞ
0090デフォルトの名無しさん (ワッチョイ b101-tb1I)
垢版 |
2023/01/10(火) 19:16:36.48ID:0yW4rCRf0
C言語の重力付き4目並べです、ここのコードを簡略化したいです。

int SetXpos(int player) // コマの置き場所を入力または探して盤を更新,コマの置き場所(0-6)を返す
{
int xpos = 0; // コマの置き場所
if ((choice == 2 && player == 2) || (choice == 3 && player == 1)) // コンピュータとの対戦の場合に,コンピュータの手を計算
{
xpos = ComputeXpos(player);
printf("%sの番です\n", player == 1 ? "●" : "〇");
printf("コンピュータは%dに置きます\n", xpos);
}
else // 人間の手を選択
{
while (1)
{
printf("%sの番です\n", player == 1 ? "●" : "〇");
printf("どこに置きますか? 0-6の数字を半角で入力してください: ");
scanf_s("%d", &xpos);
if ((0 <= xpos && xpos < XMAX) && (num[xpos] < YMAX)) // 置ける場所かどうか判定
break;
printf("%dには置けません!\n", xpos);
}
}
board[xpos][num[xpos]++] = player;// コマをxpos列に置き,xpos列のコマ数を1増やす
return xpos;
}
レスを投稿する


ニューススポーツなんでも実況