今回はソーシャルハッキング を用いた
携帯番号推測方法についてです


解説動画はこちら



・今回のテーマ

電話番号が気になっちゃう
っていう人のために

気になる相手の電話番号を
推測する方法についてお伝えします

これはソーシャルハッキング
を用いた電話番号推測法になります

まずは、携帯番号占いに誘う必要があります

・携帯番号占い
琉球風水志シウマさんがやっている
携帯番号を用いた占いのことです

携帯番号下4桁を足した数字で
占いを行い、結果を伝えています

数字が持つパワーで運気が変わるとか
変わらないとか・・・

ただ今回は、占いを行う必要はありません
占いのフリで良いので
占い自体を覚えなくても行えます


・番号推測の方法
「携帯番号占い」出来るていで
相手に数字を聞く事が出来ればOKです

ここでは、進化した「携帯番号占い」を
行うていで進めていきます



・番号を聞く手順
1.「上4桁(4-7桁目)」「下4桁(8-11桁目)」の
合計値と末尾の値の4つを聞く

(上4桁の合計値) , (上4桁の末尾)
(下4桁の合計値) , (下4桁の末尾)

2.占いの結果は適当に答えるも良し
真面目に答えるも良し

3.適当に「ラッキカラー」と
「開運グッズ」とかを答えておけば良い

4.上4桁と下4桁を推測して
最後に080 or 090 をつける


・電番の一部を推測するコード


聞いた数字から、電番を予測していきましょう
合計値と、末尾の数字から
その4桁の候補を出すコードがこれです

例:下4桁の合計値が「30」で末尾が「3」の場合
import itertools

def check_num(num1,num2):
    result = []
    L = [str(i) for i in range(10)]
    for p in itertools.product(L,repeat=4):
        ans = sum([int(a) for a in p])
        if ans==num1 and int(p[3])==num2:
            result.append([int(a) for a in p])
    return result

# (合計値 , 末尾の数字)
check_num(30,3)
[[9, 9, 9, 3]]


こんな感じで関数の引数に
合計値と末尾の数字を入れてあげると
その4桁の候補が出ます

これを上4桁、下4桁で行い
080 or 090 をつければ完成です


・合計値の組み合わせの数

問題になるのは、合計値の組み合わせ数です
どれくらい存在するでしょうか?
import itertools
import matplotlib.pyplot as plt
%matplotlib inline

result = {}
L = [str(i) for i in range(10)]
for p in itertools.product(L,repeat=4):
    ans = sum([int(a) for a in p])
    if ans in result:
        result[ans] +=1
    else:
        result[ans] = 1

plt.figure(figsize=(10,5))
X = [k for k,v in sorted(result.items())]
Y = [v for k,v in sorted(result.items())]
plt.bar(X,Y)
plt.show()
download

合計値は0 - 36までの37通りあり
合計値18の組み合わせが一番多いです

この付近に当たってしまうと
組み合わせ数が多すぎて特定できないかもしれません

ただ合計値1桁や30以上は
組み合わせが少なくなるので
一意に特定できる事もあります




・まとめ
うまく話術を磨いて、数字を聞き出せないと
ダメだけど・・・頑張りましょう!!!!

合計値が5以下や30以上の場合は大チャンス!!!

合計値が13-23あたりだった場合は、キツ目

合計値が18あたりだった場合は、あきらめよう

さらに末尾2桁教えて貰えば、勝てるかも

プログラミング技術が無くても
話術があれば何とかなる

ってか、直接電番を聞ければ
占いをする必要も無いので
小細工しない方が早いかもしれません

まあ、聞けない方々のための
姑息な方法になりますので
是非試して遊んでみて下さい

それでは