C#, C♯, C#相談室 Part96

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 7633-kUv4)
垢版 |
2021/12/20(月) 11:03:25.88ID:sdn/+VfW0
!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が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
948デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/20(火) 17:06:16.44ID:pH7eiimed
>>942
ストアアプリも読める?読めたらまずくない?
949デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/20(火) 17:17:31.72ID:pH7eiimed
半分自己解決。UWPはnative codeになるようだ
非UWPはまだわからん。
.NET nativeのおかげだな。.NET7では全アプリ対応になってるのかも

https://microsoft.github.io/react-native-windows/docs/native-code
UWP apps written in C# or other managed languages submitted to the store must be built using the .NET Native toolchain. This is the default when building C# apps in Release mode, but not in Debug, so apps built in Debug will be rejected by the Store.
950デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/20(火) 17:21:11.68ID:pH7eiimed
native codeじゃないと商用アプリリリースする気にならないわ
認証まわりとかコード見られたくない

.NET7でもしWPFとかもnative codeふつうにはけるのなら
c#人気復活する気がする
2022/12/20(火) 17:32:16.50ID:yIApGVlC0
盗んだコードで売りに出す♪
2022/12/20(火) 17:33:48.40ID:cyGUI4Ab0
>>948
visual studioで空のUWPプロジェクト作って
releaseで.NETネイティブツールチェインをオンにして生成されたApp1.exeをILSpyで見ても
普通に中身見れるなw
2022/12/20(火) 17:33:58.25ID:GGhGhggz0
>>942
難読化を強い設定にしたらILSpyでファイルを開いただけじゃソースコードは読めないよ
954デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/20(火) 17:37:55.97ID:pH7eiimed
>>952
MSのストア側でnativeになるとかじゃない?
955たすけて!!!!!1!!11!!1!!!1!!111 (ガックシ 0676-ZR1D)
垢版 |
2022/12/20(火) 19:28:27.61ID:nMZXsv/b6
C言語でボードゲームを作成する課題についてです。重力付き4目並べを最終的にコンピュータと対戦可能にするように、テンプレートのコードに穴埋めしていく課題です。
@横7x縦6の盤面を立てて使用A2人で対戦、以下の0~6のマスを交互に選択B縦横斜めいずれか4コマ並べれば勝ち。以下はテンプレートのコードです(長いので続きはGoogleドライブにも置いてます)、これらの空白部分の穴埋めが分かる方、どうか教えてくださいお願いします。元テンプレコード↓→ https://drive.google.com/file/d/1bTnbssantyf9dEV5DOugZuloiVUh7H3D/view?usp=share_link
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define YMAX 6 // 縦方向のマス目の数
#define XMAX 7 // 横方向のマス目の数
int board[XMAX][YMAX]; // 0:未着手 1:先手のコマ● 2:後手のコマ○
int num[XMAX]; // 各列に置かれているコマの数
int choice = 1; // 0:未選択
// 1:人間(先手●)対人間(後手〇)
// 2:人間(先手●)対コンピュータ(後手〇)
// 3:コンピュータ(先手●)対人間(後手〇)
int turn = 0; // 先手か後手かを判定するための着手数
void InitBoard(void);
void DispBoard(void);
int CheckFull(void);
int SetXpos(int);
int CheckBoard(int, int, int);
int ComputeXpos(int);
int SearchConnect(int, int);
int main(void)
{
int xpos; // 入力したコマの置き場所,またはコンピュータが探したコマの置き場所
int player; // 1:先手の手番 2:後手の手番
int win = 0; // 0:プレイ中 1:先手の勝ち 2:後手の勝ち 3:引き分け
int ans;
while (1)
{
srand((unsigned int)time(NULL)); // 乱数を使う場合のseedの初期化

長いので続きはGoogleドライブにあります→ https://drive.google.com/file/d/1bTnbssantyf9dEV5DOugZuloiVUh7H3D/view?usp=share_link
956デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/20(火) 19:43:57.01ID:pH7eiimed
>>955
名前とはうらはらにC#とCはぜんぜん違う
ここで聞くべきではない
2022/12/20(火) 19:53:21.19ID:3kdd/MdI0
課題についてですが
2022/12/20(火) 19:56:57.69ID:oMNiRABq0
パクられるほどのアプリなんだろうか。
今日日、割られるとしたらパッチが広まるのも一瞬なんだから、それよりもちゃんと利用規約書いた方が良いんじゃないの?
はるかに金払うと思うよ。特に企業内ユーザは。
959デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/20(火) 20:36:05.36ID:pH7eiimed
>>958
流行ってきてもすぐにコピーアプリつくられたら
収益激減しちゃうでしょ
利用規約なんて書いても少し変えてコピーアプリつくられたらおしまいだよ
実害がはっきりでる
例えば300円のアプリ、コピーされて100円で売られたらこっちは大損だよ
2022/12/20(火) 20:36:09.48ID:k+1oqZ2P0
困るほど割られるならサーバー用意して認証するかな、俺なら
まあそんなアプリを公開できるとも思わんから取らぬたぬきなんだけどw
961デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/20(火) 20:38:13.57ID:pH7eiimed
>>960
native codeじゃないとかんたんに
サーバーの認証のコードが漏れちゃうでしょ
セキュリティ大事

でもNET7でようやくC#でnative codeをMSが許可したのは大きいね
2022/12/20(火) 20:43:25.99ID:paaoChG1d
クライアントにAPIキーをハードコードしてるのか?ユーザー認証を実装しろよ
そんな初歩的な設計ミスしといてセキュリティもクソも
2022/12/20(火) 21:05:09.19ID:k+1oqZ2P0
>>961
もしかして認証ってクライアントからサーバーにログインするような奴しか知らんのか?
964デフォルトの名無しさん (スッップ Sd8a-g3+u)
垢版 |
2022/12/20(火) 21:41:02.29ID:y3Va6Z2Ud
>>955
馬鹿は死ね
2022/12/20(火) 21:55:47.97ID:oMNiRABq0
>>959
実際Windows以外ではアプリ作っててそこそこダウンロードされてるけど、コピーアプリが追いついたこと無いぞ。
単純に品質と知名度でしょ。
966デフォルトの名無しさん (ワッチョイ 535f-8Cre)
垢版 |
2022/12/21(水) 02:19:07.37ID:XJm7JjIp0
.NET 7のNative AOTは今のところコンソールアプリとクラスライブラリで使えるらしい
今後範囲を広げていく計画だったと思うが
現状でWindowsアプリでも重要な部分だけクラスライブラリにすれば上で求められてることはできそうだな
2022/12/21(水) 08:11:43.60ID:WvXmOK62d
>>966
それはちょっと誤解がある
NativeAOTはコンソールアプリとして発行されるアプリケーション、もしくは(.NETのクラスライブラリではなく)ネイティブの共有ライブラリを作るときだけ使える
つまり、仮にWindowsアプリで部分的に使うならPInvokeが必要
なお、NativeAOTはASP.NET Coreアプリを動かすことをゴールとしており、GUIアプリのサポートは全く計画にない
2022/12/21(水) 08:21:41.02ID:NS3BAQGq0
ネイティブのDLL作れるのはええな
わざわざその為だけにC++使う必要なくなるかな
2022/12/21(水) 10:09:22.51ID:DxBIri9+0
ソースが見られるのを恐れてるのはパクられるのを恐れてるんじゃなくパクったのがバレるのを恐れてるんだよな
お前なんかの作った物をパクるやつなんかいねーよと言いたくなるやつしか難読化難読化言わない
2022/12/21(水) 10:17:43.01ID:DxBIri9+0
あと.NETのリバースエンジニアリングがしやすいのは静的ライブラリじゃなくDLLを使ってるのと仮想メソッドを多用しているのも大きい
DLLで提供されるクラスを使う時や仮想メソッドを使う時は名前でアクセスせざるを得ないからどのクラスのどのメソッドを使っているかを隠すことができない
これはC++を使っても同じこと
本気で難読化したいなら標準ライブラリを使うのをやめた上でソースコードジェネレータを使ってソースレベルでクラス名や関数名をランダマイズするところから
2022/12/21(水) 10:20:28.49ID:DxBIri9+0
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
立てたけどこれ過去スレの履歴要らんだろ
972デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/21(水) 10:50:38.22ID:Q7xHaIEVd
>>967
ASP.NET Coreは.NET8でnative AOT対応してくるかもしれない。
Azure運営してるMSとしては欲しい機能だろうし。
GUI appsもゴールにないという事はないと思うよ
やっぱり速度とかメモリ使用とかでnative有利だし。

MAUIで作ったiOSかMacアプリはnative codeでbuildされるとか見た記憶ある。
他社がnativeで動くならGUI appも対応しないとc#開発者がC#使うのをやめてしまう。
973デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/21(水) 10:52:45.19ID:Q7xHaIEVd
ここみると.NET7の制限というニュアンスで書いてある。
最終的にはふつうのWPFとかもnative AOT目指してるように思える。
https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/
974デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/21(水) 10:54:27.51ID:Q7xHaIEVd
>>969
コード見られるのを気にしない人はセキュリティに関して知識と意識が低いだけだと思う。
必要のない情報は極力見せないっていうのがセキュリティの基本だ。
2022/12/21(水) 10:59:36.26ID:DxBIri9+0
>>974
何のセキュリティを気にしてんだよw
セキュリティの意味わかってないんじゃね?
2022/12/21(水) 11:21:48.38ID:dQUtHKIl0
>>974
その理論だとつまりオープンソースはセキュリティが低すぎて使い物にならないってことだな

極力見せない以前に、見せていいものと悪いものの判断ぐらいできるようになれよ
2022/12/21(水) 11:38:04.02ID:XdVZCz4Ta
>>971
それよりVS 2017 からバージョンさせてほしい
2022/12/21(水) 11:46:13.92ID:yXejyiRX0
まあ認証まわりとか、ライブラリを使ってるのか自作なのかすら見せたくないのはわかる
個人のアプリじゃないと重箱の隅をつつかれることにもなるしね
2022/12/21(水) 12:14:36.58ID:UGlVD7cdM
カジュアルな解読対策なら既存の難読化で十分だし、ガチのクラッカー相手ならマシン語になった程度じゃ無駄だよ
2022/12/21(水) 12:52:16.33ID:j8NGwdcp0
そもそもターゲットになるようなアプリを公開できる奴がこんなスレにいるのかと...
981デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/21(水) 14:51:10.30ID:Q7xHaIEVd
native AOTはスピードアップの恩恵も大きい。
C++くらい速いコードになるし欲しいに決まってる
2022/12/21(水) 15:00:09.00ID:xeZ9BjZLa
ならんと思うよ
C++は最適化のやり方がえげつないし安全より速度に倒してるから
2022/12/21(水) 15:01:27.23ID:9NcjNPce0
最適化に関しては言語単位ではなくコンパイラ次第だけどな
984たすけて!!!!!1!!11!!1!!!1!!111 (ガックシ 0676-ZR1D)
垢版 |
2022/12/21(水) 15:04:48.89ID:PoVpFNoO6
C言語でボードゲームを作成する課題についてです。重力付き4目並べを最終的にコンピュータと対戦可能にするように、テンプレートのコードに穴埋めしていく課題です。
@横7x縦6の盤面を立てて使用A2人で対戦、以下の0~6のマスを交互に選択B縦横斜めいずれか4コマ並べれば勝ち。以下はテンプレートのコードです(長いので続きはGoogleドライブにも置いてます)、これらの空白部分の穴埋めが分かる方、どうか教えてくださいお願いします。元テンプレコード↓→ https://drive.google.com/file/d/1bTnbssantyf9dEV5DOugZuloiVUh7H3D/view?usp=share_link
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define YMAX 6 // 縦方向のマス目の数
#define XMAX 7 // 横方向のマス目の数
int board[XMAX][YMAX]; // 0:未着手 1:先手のコマ● 2:後手のコマ○
int num[XMAX]; // 各列に置かれているコマの数
int choice = 1; // 0:未選択
// 1:人間(先手●)対人間(後手〇)
// 2:人間(先手●)対コンピュータ(後手〇)
// 3:コンピュータ(先手●)対人間(後手〇)
int turn = 0; // 先手か後手かを判定するための着手数
void InitBoard(void);
void DispBoard(void);
int CheckFull(void);
int SetXpos(int);
int CheckBoard(int, int, int);
int ComputeXpos(int);
int SearchConnect(int, int);
int main(void)
{
int xpos; // 入力したコマの置き場所,またはコンピュータが探したコマの置き場所
int player; // 1:先手の手番 2:後手の手番
int win = 0; // 0:プレイ中 1:先手の勝ち 2:後手の勝ち 3:引き分け
int ans;
while (1)
{
srand((unsigned int)time(NULL)); // 乱数を使う場合のseedの初期化

長いので続きはGoogleドライブにあります→ https://drive.google.com/file/d/1bTnbssantyf9dEV5DOugZuloiVUh7H3D/view?usp=share_link
985デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/21(水) 15:06:36.41ID:Q7xHaIEVd
>>979
マシン語のリバースエンジニアリングできるやつなんて
プログラマーの1%もいないだろうし時間もかかるからほぼ回避できる。
解析する行為が割に合わなくなる
C#難読化だけとは安心度が全然違う
986デフォルトの名無しさん (スッップ Sd8a-g3+u)
垢版 |
2022/12/21(水) 15:08:08.84ID:QEiYz8egd
>>984
しつこい
死ねよ
987デフォルトの名無しさん (ガックシ 0676-ZR1D)
垢版 |
2022/12/21(水) 15:46:41.58ID:PoVpFNoO6
>>986
ごめんち
2022/12/21(水) 15:57:46.46ID:xnCwgzYya
>>985
マシン語に夢見すぎだしCのソースコードにデコンパイルできるぞ
2022/12/21(水) 16:15:55.40ID:j8NGwdcp0
まあガチで最適化されてたらまともなCコードにはならんけどね
2022/12/21(水) 16:23:28.08ID:xnCwgzYya
>>989
少なくとも文法はCになる
2022/12/21(水) 20:14:45.78ID:RZVo2DHQM
文法はCだけど中身はマシン語と変わらないなら地獄だけどそういうものになるんだろ?

ifとgotoとreturnとラベルだらけ
2022/12/21(水) 20:17:20.13ID:RZVo2DHQM
式は漏れなく逆ポーランド記法的になるんだろうし
2022/12/21(水) 20:23:34.31ID:rozOpZ0F0
自分でやってみればわかるが、言うほど難しくない。
2022/12/21(水) 20:27:18.93ID:RZVo2DHQM
と言う妄想
995デフォルトの名無しさん (ワッチョイ 3b01-ZR1D)
垢版 |
2022/12/21(水) 21:29:01.38ID:ye8WaQKn0
Cとアセンブラの最も大きな違いはレジスタへのアクセスなんだよね。
2022/12/21(水) 21:48:30.78ID:rozOpZ0F0
>>994
慣れだよ。CTFとかやったら良い。
2022/12/22(木) 02:21:30.51ID:IYYvjjD3a
>>995
レジスターやスタックを気にしながらプログラムを組むのは地獄だわな
998デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/22(木) 02:36:34.84ID:F1nh9mbrd
C++も終わりになるんじゃないの?
LinuxがRustで書くようになるとかいう噂?ニュースを見たよ
RustってOSも書けるんだな
Rustで安全で高速なコード書けたらC/C++ほぼ要らなくなるんじゃ?
999デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/22(木) 02:37:22.51ID:F1nh9mbrd
>>999
LinuxのカーネルがRustで書かれるかもっていう噂、ニュースね
1000デフォルトの名無しさん (スッップ Sd8a-JDfe)
垢版 |
2022/12/22(木) 02:43:23.22ID:F1nh9mbrd

C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 366日 15時間 39分 58秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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