日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ctf之py反编译求p*q%n==1

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ctf之py反编译求p*q%n==1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

拿到一個pyc反編譯,分析了一下,要求t1,t2,t3

from flag import t1, t2, t3 N = 91080783459224114417419735848141602413276894709356670475166857901383529276788422992031159L s1 = 11411269144987772222786703496950992585276983184692849555141859373112423610294869112786252L s2 = 58599619676130565690598871824198278116020685570207351127154648707502599199944142046246402L s3 = 65974795812758987659130564760412992885703783478354682873750151867682024151063561297876490L if s1 * t1 % N != 1:exit() if s2 * t2 % N != 1:exit() if s3 * t3 % N != 1:exit() flag = hex(t1 + t2 + t3)[2:-1].decode('hex') print flag

已知s1*t1%N==1,求t1,這其實是個數論問題,t1=ModReverse(s1,N)
鏈接:https://blog.csdn.net/CosmopolitanMe/article/details/78948011
解題代碼:

def gcd(a, b):while a != 0:a, b = b % a, areturn bdef findModReverse(a, m):if gcd(a, m) != 1:return Noneu1, u2, u3 = 1, 0, av1, v2, v3 = 0, 1, mwhile v3 != 0:q = u3 // v3v1, v2, v3, u1, u2, u3 = (u1 - q * v1), (u2 - q * v2), (u3 - q * v3), v1, v2, v3return u1 % mt1=0 t2=0 t3=0 N = 91080783459224114417419735848141602413276894709356670475166857901383529276788422992031159L s1 = 11411269144987772222786703496950992585276983184692849555141859373112423610294869112786252L s2 = 58599619676130565690598871824198278116020685570207351127154648707502599199944142046246402L s3 = 65974795812758987659130564760412992885703783478354682873750151867682024151063561297876490L t1=findModReverse(s1,N) t2=findModReverse(s2,N) t3=findModReverse(s3,N)flag = hex(t1 + t2 + t3)[2:-1].decode('hex') print flag

總結

以上是生活随笔為你收集整理的ctf之py反编译求p*q%n==1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。