1: イス攻撃(栃木県)@\(^o^)/ 2015/02/12(木) 08:41:16.20 ID:LqgHR1r70.net BE:886559449-PLT(21000) ポイント特典
index378

精度95%以上! ソースコードは指紋、作者はほぼ特定できる

ほぼドンピシャでバレバレです。

スペースやタブ、大文字やアンダーバーを組み合わせた命名規則、コメント…コードの書き方には、
人によってスタイルがありますよね。それはもう指紋のようなもので、それさえ見えれば、誰がコードを
書いたかほとんどわかってしまう…そんな驚きの研究結果が発表されました。

米ドレクセル大学、メリーランド大学、プリンストン大学、独ゲッティンゲン大学の共同チームの研究によると、
自然言語処理と機械学習によるコード分析により、95%の精度で作者は特定できるそうです。

解析されるのは、レイアウトや語彙の特性と、「抽象構文木(AST)」です。ASTとは、「コードの書き方からまったく
影響を受けずに、コードの型の特性をとらえる」もので、つまり、関数の名前、コメント、スペース入れ方などの
クセ以上のものを探し出し、作者を特定するカギにする、というわけです。

研究チームが開発した機械学習ソフトウェアで、Google Code Jamに公開されているコードの分析を試しに
行ってみたところ、あるひとりの人が書いた630行のコードを分析すれば、95%の精度でその作者が特定できたそうです。
コードの行数を増やして1,900行にすると、特定の精度は97%になるとか!

このコード解析、すぐに使えそうな分野が思い浮かびますよね。そう、当局がハッカーを見つけたり、
オンライン詐欺の犯人を特定したり、という使い方です。あと、他人のコードをちょっと拝借、なんていうケースも
バレちゃったりするんでしょうか。「特定されたら困る!」という人は、今から誰かのコードの書き方をそっくり
マネする練習を始めた方がいいかもしれない…ですかね?

http://www.gizmodo.jp/2015/02/your-coding-style-is-like-a-digital-fingerprint.html
引用元: http://hayabusa3.2ch.sc/test/read.cgi/news/1423698076/


48: ジャーマンスープレックス(庭)@\(^o^)/ 2015/02/12(木) 12:01:57.22 ID:k0bw3sBh0.net
>>1
これ、当たり前。
論理設計段階のフローチャートですら癖でるからな。

俺、大学の卒論の一部でシステム作ったけど、その後後輩が別論文で丸コピしたの使ったらしく、教授に怒られてた。

6: ニールキック(茸)@\(^o^)/ 2015/02/12(木) 08:44:33.62 ID:l2mjmUgH0.net
昔からよくわかっているよ

8: イス攻撃(東京都)@\(^o^)/ 2015/02/12(木) 08:45:39.25 ID:jihSHDI10.net
インデント論争

9: レインメーカー(茸)@\(^o^)/ 2015/02/12(木) 08:45:56.10 ID:NtJTD2/F0.net
プロジェクト毎に異なるコーティング規準に沿って書いた各コードを
全て俺の書いたものと判断できるのかな?

13: ナガタロックII(やわらか銀行)@\(^o^)/ 2015/02/12(木) 08:48:14.07 ID:eBpd25I20.net
>>9
ロジックの組み立て方でバレることもあるんだよなぁ

10: タイガースープレックス(神奈川県)@\(^o^)/ 2015/02/12(木) 08:46:40.36 ID:tB96gILn0.net
改変時は元のソースの癖や規約を完全にコピーするから
俺の改変箇所に関しては不可能だ

14: 毒霧(東京都)@\(^o^)/ 2015/02/12(木) 08:48:37.10 ID:lOH3uvxx0.net
コードなんて大体その日の気分で変わる

16: メンマ(茸)@\(^o^)/ 2015/02/12(木) 08:52:26.12 ID:AVx9aAIr0.net
俺が書くとベーシックみたいだとよく言われる

36: フォーク攻撃(関東・甲信越)@\(^o^)/ 2015/02/12(木) 09:59:36.43 ID:ydSa4TcvO.net
>>16
大きくはmain以下にズラッと
ひたすら命令が続く書き方を好む人間と
object単位で処理を分割する書き方を好む人間に分かれるな

前者は初心者、スクリブト書き、組み込みコード書きなどの
短い書き捨てプログラムを書く人間

後者はシステムエンジニア大規模アプリケーション
サーバー開発者
ミドルウェア開発者などの長いメンテナンスが必要なプログラムを書く人間

これは適性があるから
書くプログラムにも反映されるな


俺はパッチだらけの汚いプログラムを見るとゴミだと思うが
その方が心からうれしい人間もいるみたいだから
癖はあるんだと思うわw

22: タイガードライバー(SB-iPhone)@\(^o^)/ 2015/02/12(木) 09:09:12.27 ID:ZY/gYSjH0.net
俺のは100%特定される自信あるわ
ソースコードに名前書いてるし

25: 河津掛け(茸)@\(^o^)/ 2015/02/12(木) 09:13:00.32 ID:ZdlXK84c0.net
lintで整形しとくのは鉄則ってことか

27: リキラリアット(WiMAX)@\(^o^)/ 2015/02/12(木) 09:17:16.72 ID:rU82gMSz0.net
圧縮して難読化してもばれるものなのかな

32: フライングニールキック(茸)@\(^o^)/ 2015/02/12(木) 09:49:24.36 ID:BAUkP5cD0.net
標準化ってなんだったんだろ

41: カーフブランディング(庭)@\(^o^)/ 2015/02/12(木) 10:23:19.46 ID:pcqkpjG/0.net
K&Rとか山ほどいるし自動整形もあるから無理じゃね

42: ハーフネルソンスープレックス(家)@\(^o^)/ 2015/02/12(木) 10:38:05.37 ID:6SlMyCF30.net
一文字グローバル変数の時代が来たか

46: マシンガンチョップ(埼玉県)@\(^o^)/ 2015/02/12(木) 11:00:39.65 ID:QpCgUPZY0.net
自分のスタイルでコードを書き上げた後に、
ある程度コールグラフを展開するだけで認識できなくなると思うわ
完全ベタに変換してもいいけど。

64: リバースネックブリーカー(東京都)@\(^o^)/ 2015/02/12(木) 17:25:29.51 ID:nC+KbA3U0.net
ちょっと前の自分のコードは読み解かないと何をやってるのかよくわからない

67: リバースネックブリーカー(公衆電話)@\(^o^)/ 2015/02/12(木) 17:45:16.59 ID:NcJD2YiA0.net
PRINT "HELLO WORLD"

71: アイアンフィンガーフロムヘル(埼玉県)@\(^o^)/ 2015/02/12(木) 17:58:21.36 ID:mNwmBJ6H0.net
お前らの環境でコンパイルした跡、バイナリエディタで開いてみ

73: ダイビングフットスタンプ(SB-iPhone)@\(^o^)/ 2015/02/12(木) 18:42:36.48 ID:KuJUQJJe0.net
大企業のシステムに関わる事が多いから標準化がガッチガチで
個人の癖を出す隙すら無いです

スポンサード リンク