重楼逆向课程已完结

资源下载
下载价格10
单买课程不是很划算,开通本站会员可免费下载所有课程,全站课程不加密,稳定运行多年,比我们便宜的没有我们全,和我们一样全的没我们便宜,累积更新一百多T,超划算。

重楼逆向课程  | 完结

〖資源目錄〗:
根底篇:
001 -F8找CALL實例ONE 模仿器的解說
课程内容: 調試模仿器並找到他所調用的CALL.
002 -CALL調用辦法的解說
课程内容: 以幾個CALL的反匯編模型解說CALL的調用方式.
003 -實戰,尋觅第一個程序選中怪物功用
课程内容: 找到選中怪物目的的功用.
004 -實戰尋觅第一個程序尋路功用
课程内容: 找到游戲尋路功用.
005 -實戰,尋觅第一個程序技藝释放功用
课程内容: 找到游戲技藝释放功用.
006 -實戰,尋觅第一個程序普通攻擊功用
课程内容: 應用 明文包CALL和 目的ID找到游戲普通攻擊功用,並剖析封包組的匯編代码.
007 – VC創立工程以及简單的函數
课程内容: 創立一個空白的工程,並開端寫第一個简單函數
008 -函數的機製之栈帧的構成
课程内容: 認識函數在反匯編里的機製以及栈帧的構成.
009 -函數的機製之調用商定的解說
课程内容: 解說函數的調用商定.
010 -數據構造篇之數組構造
课程内容: 解說VC中數組構造
011 -VCTAB頁的創立和辅Z控件類的運用
课程内容: 解說VC中TAB頁面的創立和辅Z專用控件類的運用
012 -VC键盤钩子注入
课程内容: 編寫一個程序將DLL注入到游戲當中並解說如何調試DLL代码.
013 -物構造剖析(匯編代码剖析)
课程内容: 剖析怪物構造遍歷的匯編代码
014 -第一個程序怪物構造遍歷(用程序遍歷链表)
课程内容: 用程序遍歷怪物構造,解說VCTRY異常,調試輸出,以及DLL調試.
015 -怪物構造其他成員的尋觅
课程内容: 尋觅除了ID之外的其他主要成員的偏移.
016 -VC++指針的應用(用構造指針遍歷怪物數據構造)
课程内容: 應用自定義構造遍歷游戲的數據.
017 -第一個程序背包構造剖析
课程内容: 剖析第一個程序的背包構造
018 -第一個程序背包構造匯編代码遍歷
课程内容: 用匯編代码遍歷背包構造
019 -用代码模仿背包構造
课程内容: 用代码模仿背包構造
020 -用自定義構造遍歷背包構造
课程内容: 用自定義構造遍歷背包構造
021 -第一小節完畢
[第二小節:偏重於CALL的尋觅及參數的剖析,简單數組剖析以及简單掛機流程]
022 -第二個程序人物屬性剖析
课程内容: 用自定義構造遍歷背包構造
023 -剖析程序發包流程
课程内容: 剖析程序的發包形式,以及他的過程.
024 -尋觅普通攻擊CALL
课程内容: 剖析尋觅普通攻擊CALL封包組成過程以及整個攻擊代码流程.
025 -技藝CALL的尋觅與剖析
课程内容: 剖析和尋觅游戲的技藝攻擊CALL.
026 -游戲功用框架以及游戲循環攻擊功用剖析
课程内容: 依據技藝和普通攻擊剖析出游戲大約的循環攻擊功用框架
027 -編寫程序讀取血量並顯現
课程内容: 編寫血量等信息的讀取.
028 -編寫程序調用普通攻擊及技藝攻擊
课程内容: 編寫調用普通攻擊以及技藝攻擊的調用.
029 -怪物構造剖析
课程内容: 剖析程序的怪物構造公式.
030 -怪物構造剖析(2)-怪物坐標的剖析以及尋路和坐標加密的剖析
课程内容: 剖析了尋路CALL,和怪物坐標的偏移以及怪物坐標加密的剖析.
031 -人物選怪功用和怪物選人功用的剖析
课程内容: 剖析人物選怪和怪物選人的思緒.
032 -用程序遍歷怪物
课程内容: 遍歷怪物的屬性.
033 -冒泡算法得到最近的怪物
课程内容: 選取最近的怪物功用的完成
034 -從代码剖析出目的類型的偏移
课程内容: 從普通攻擊動手,剖析出目的類型的偏移(能否是怪物).
035 -做一個最简單的自動打怪
课程内容: 編寫一個最简單的打怪流程.
036 -完善自動打怪-增加範圍掛機
课程内容: 增加範圍掛機功用.
037 -跨圖尋路CALL的尋觅與剖析
课程内容:尋觅游戲中跨圖尋路CALL的剖析與尋觅…
038 -完善自動打怪-增加地圖判別
课程内容:增加對掛機的時分地圖判別.
039 -吃藥CALL的剖析以及背包數組的剖析
课程内容: 經過明文包找到吃藥CALL,剖析吃藥CALL的時分發現參數是一個構造,從物品指針+14C傳送過來,經過這個物品指針我們找到了背包構造,剖析發現+8是物品横坐標+C是物品縱坐標,+4是物品的ID,我們又發現更改物品的ID會招致鼠標放在物品上顯現信息的改動,那麼我們晓得這個顯現物品的信息是由這個+4這個ID值改動,監視這個地址,我們找到了讀取物品信息的CALL.
040 -背包遍歷及數量名字尋觅和運用物品CALL的調用
课程内容:首先我們整理了上節课找的背包ID以及背包公式.但是光光是ID值還不夠,由於妳得晓得其他的信息,比方說數量,名字等等,數量我們經過CE能夠直接搜索到.而名字我們發現搜索到的名字的指針並沒有在我們的背包構造内存中,我們繼續經過名字來查找,發現他是來自另外一個構造,那麼新的問題呈現了這個物品構造是如何匹配物品名字的呢?經過剖析我們發現原來那個ID值就是這個構造的下標,接下來我們勝利的遍歷知名字ID數量.並寫出運用物品的CALL.
041 -智能判別吃藥的完成
课程内容:今天我們要完成智能加血,什麼是智能加血呢,我們要自動判別背包里哪個物品是藥,那麼如何判別呢,首先我們嘗試了類型的判別發現補蓝和補血的類型名字一樣,那麼掃除掉,那樣的話我們只好用名字匹配了,幸虧這個藥品名字不多,那麼我們能夠直接匹配了2個.但是測試的時分發現出錯了,這個時分我們發現運用物品並沒有檢測這個ID能否爲0也就是有沒有物品,參加判別後,我們發現曾經能夠正常加血了.
042 -吃藥的完善-增加吃藥距離的判別以及等級判別
课程内容:首先理解下如何經過代码剖析出CD和LV的偏移.經過破解剖析代码,我們找到了這個CD和LV的偏移,並且把判別的功用參加了智能吃藥,經過不時的調試,我們勝利的判別了物品的CD和LV,我們的智能加血愈加圆滿了.
043 -技藝構造的剖析(1)
课程内容: 今天我們解說了由名字破解回構造,發現找到的並不是我們想要的技藝構造而是技藝信息構造,爲什麼會找到這樣的一個構造,而不是技藝構造呢?這是這節课留給大家的作業,請大家好好考慮一下!
044 -技藝構造的剖析(2)
课程内容:我們從上一節课找的鼠標取技藝信息的CALL開端尋觅我們的技藝構造,發現返回到了另外一個模塊,沒方法我們只好從技藝運用CALL開端尋觅,我們用快捷键運用技藝,破解到了快捷键構造,當然這不是我們所要找的,我們又用右键運用技藝面板的技藝,這時分我們遍歷到了門派的技藝構造.這個是不是我們想要找的呢?
045 -技藝構造的剖析(3)
课程内容:遍歷的時分我們發現,構造中只要當前選中捲宗的技藝,那麼我們就明白了,這里也並不是真正的技藝構造,那麼我們又發現切換的同時技藝也隨之改動,沒方法我們只要又開端剖析了ID的來源,剖析後我們發現他來自一個構造中,而這個構造呢,就是傳說中的二叉樹.!
046 -二叉樹的原理解說與遍歷
课程内容: 二叉樹在VC中的構造的模型,在内存當中的模型,構造的圖形,以及框架表示圖像.最後我們用遞歸遍歷了整個二叉樹構造.
047 -技藝構造的剖析(4)
课程内容: 上節课我們把二叉樹信息遍歷出來了,但是發現里面有很多值,那麼我們該如何肯定那個是技藝ID呢?經過代码發現他比照的是心法的ID,那麼心法的ID來源是哪里呢?經過剖析參數的來源,我們找到了心法的構造,這樣我們經過心法的構造就能夠精確的找到我們所學的技藝.
048 -技藝信息構造的剖析
课程内容:首先我們依照技藝剖析1當中剖析出了名字的偏移,然後我們開端依照背包找CD的找法去尋觅技藝的CD,終於依照一步步剖析,我們找到了正確的中央,經過代码剖析,他經過當前的時間減去記载的時間來判別能否在CD當中,這樣我們的CD的偏移也就找到了,是在怪物構造中人物構造指針里.
049 -技藝構造的遍歷
课程内容: 今天我們來設計技藝遍歷以及構造,這個游戲的技藝構造不像背包一樣都在1,2個構造里,這個技藝構造經過一個構造,一個二叉樹遍歷,兩個信息屬性構造,假如每次都重新遍歷的話效率會十分低,這樣我們就需求設計一個自定義構造來贮存技藝,刷新的話只需求刷新幾個值就能夠了.
050 -技藝面板寫入技藝ID的剖析
课程内容: 經過代码寫入我們找到了處置技藝構造ID的代码,經過剖析我們晓得他是如何一個過程,關於我們來說無須在去寫一次,直接調用游戲内部的代码即可.
051 -技藝流程處置(1)
课程内容: 設計自動技藝攻擊流程.
052 -技藝流程處置(2)
课程内容: 解說了C宏在辅Z中的應用,以及技藝流程的調試.
053 -技藝流程處置(3)
课程内容: 經過輸出CD和上次運用時間我們發現上次運用時間變量當中贮存的並不是最後一次運用時間,而是下一次運用的時間,那麼經過改動代码,我們勝利的修復了運用技藝形成的解體,並加上了自動補蓝功用.
054 -HOOK的應用-行爲監測
课程内容: 首先我們解說了下HOOK的原理,然後我們找到行爲CALL,HOOK了他的頭部,勝利後,我們自定義音訊輸出了行爲動作,並剖析了攻擊行爲和挪動行爲.055 -坐標加密後續以及掛機捡取思緒
课程内容: 修復不同地圖坐標值錯誤,以及解說了掛機捡取流程.056 -第二小節完畢语
课程内容: 第二小節完畢语.
[第三小節:不同的方式尋觅與剖析CALL和構造,學會剖析代码] 0’yG1 qG
057 -魔法之門明文包的剖析以及喊話CALL的調用
课程内容: 經過代码剖析我們從封包數據指針開端尋觅,找到了他的來源以及剖析出了整個發包的流程,經過關键的中央我們找到了數據指針寫入的中央,但是我們發現卻沒有發現明文的中央,於是我們繼續尋觅,最終我們找到了加密的中央以及真正的明文包的函數.
058 -喊話内容的一次破解剖析過程课程内容: 我們從喊話内容查找到了喊話編輯框里贮存的内容,經過剖析我們發現這個是一個控件構造的内 容偏移.然後我們繼續剖析喊話所贮存的内容,找到了肅清編輯框内容的代码.课程重點:1.NOP的在剖析數據中的作用2.NOP的時分所要留意的中央3.爲何找喊話内容會找到構造呢,由於我們查找的是控件中的值.4.經過構造我們能夠遍歷一切的控件.5.讀取以及訪問的區別6.調用CALL時,假如參數的數量正確數值正確,但又解體了缘由可能是傳送的參數是構造體.
059 -選择怪物功用剖析-從明文包動手课程内容: 從明文包返回到功用代码並不難,這節课的重點是經過代码剖析到CALL的參數的結構.课程重點:1.經過NOP代码我們能夠確認代码的功用.2.構造也是有可能作爲參數傳入的.3.重要的參數是有可能作爲構造的某個成員所傳送.
060 -選择怪物功用剖析-從目的動手课程内容: 用CE搜索到目的的值,經過這個值我們找到了選怪功用的CALL.這關於我們來說是一個很简單,但是我們所要理解的並非僅僅是找到,而是剖析和猜想匯編代码指令他所包含的含義.课程重點:1.CE搜索技巧2.匯編代码分離數據理解代码所包含的意義3.如何剖析目的的數據類型
061 -剖析跳的CALL-從明文包動手课程内容: 首先我們理解了跳的這一過程所發作的動作,經過明文包我們很快的定位了跳這個CALL並勝利的調用.课程重點:1.參數的來源位置2.栈參數的個數確認3.寫調用CALL的次第
062 -跳的CALL的代码剖析课程内容: 今天我們剖析了跳的代码,找到了執行動作的CALL和發包的CALL,並無意中完成了飛天的功用.能夠猜想發送非正常的坐標能夠到達飛天功用.课程重點:1.NOP代码的堆栈均衡細說2.經過NOP代码來猜想CALL所表達的含義3.經過修正參數來定位參數的作用.
063 -跳的坐標來源剖析课程内容: 上一節课我們剖析了本地執行跳的功用代码,里面有一個坐標那麼這個坐標值是從哪里來的呢?课程重點:1.栈參數的來源剖析(相似[ESP+][EBP+])
064 -對話NPC功用的剖析-從明文包動手课程内容: 今天我們找了跟NPC對話的功用CALL,並且剖析了他的代码.课程重點:1.如何猜想代码的作用;
065 -承受和放棄任務的剖析-從明文包動手课程内容: 從明文包找到承受和放棄任務的代码.课程重點:1.學會剖析RETN不帶數字尾部沒有手動均衡CALL的參數數量2.學會剖析從内局部析參數的數量
066 -運用物品的調用與背包構造的剖析
课程内容: 經過上面幾節课大家應該很简單的晓得如何去調用這個CALL,那麼我們今天的重點就放在剖析CALL的代码上,我們經過測試發現參數是一個背包的位置,那麼我們該從哪里去剖析背包構造呢?以前我們都是從調用CALL前面剖析,今天我們剖析下從CALL里面剖析,爲何?由於我們發現發包的時分一些物品的值,這些值不可能憑空消费,那麼最有可能的就是調用發包CALL前面的代码所遍歷出來的.
课程重點:
1.任何一個數據都不會無缘無故的呈現
2.測試數據最好的辦法就是更改他的值
3.值的改動招致了卻果改動,那麼結果跟值肯定會有關聯
067 -運用物品的剖析-從物品數量動手
课程内容: 今天我們從物品的數量跳轉到運用物品CALL的代码,但是我們發現返回上去後並不是我們想要的數據看來關於這個游戲我們想要從物品數量找到運用物品的CALL是不行了.
课程重點:
1.繼續對代码剖析停止一個學習
2.參數來源破解剖析
课後考慮:
爲何無法從物品的數量返回?
爲何有些游戲能夠有些游戲不行?
068 -翻開怪物背包以及捡取CALL-從明文包動手
课程内容: 今天我們來找下翻開怪物背包以及捡取的功用,經過上面幾節课我置信同窗關於找CALL應該不是太難,所以這節课還是偏重於對代码的剖析以及數據來源的剖析.
课程重點:
1.數據來源的剖析
2.參數作用的判別
3.代码的剖析
069 -技藝CALL的剖析與調用-從明文包動手
课程内容: 今天我們從明文包剖析技藝CALL,剖析出每一層他阅歷的CALL後,我們復原了游戲技藝框架構造,並且找到了合適的CALL.
课程重點:
1.游戲技藝框架的剖析與復原
2.參數的來源的剖析
070 -收包明文包的尋觅
课程内容: 今天我們解說了收包明文包的尋觅,首先我們經過代码訪問找到了處置封包的中央,然後經過參數判別我們找到理解密的過程,最後找到了我們想要找的明文包,其實收包的明文包就是解密後的封包,以及封包合成歸類的功用函數
课程重點:
1.數據讀取的應用
2.CALL參數的剖析
071-CALL的經歷總結篇
课程内容:什麼是CALL?栈的均衡.CALL的參數.參數的傳送.參數的結構方式.CALL的返回值.CALL的表現方式.
072-編程破解及數據剖析.
课程内容:數據剖析的幾個方面的經歷總結.
073-背包構造之構造内存形態的辨析及成員作用的剖析.
课程内容: 今天我們以背包構造解說了數組在内存中的表現形態,以及以成員爲索引取出其他信息,並剖析了游戲顯現物品信息的代码
课程重點
1.數組在内存的形態
2.構造成員的含義
3.物品信息代码的剖析
074-任務構造之構造成員及相關代码的剖析.
课程内容: 從任務的數量剖析,我們找到了數量成員的構造,但是發現他並沒有其他的信息,靠剖析我們找到了任務信息整理的代码,經過剖析我們理解了這個游戲的任務構造框架.
课程重點:
1.尋觅構造成員作爲打破點.
2.剖析構造中成員的作用.
3.剖析CALL的作用.
4.數據的破解追蹤
075-快捷键構造之構造成員指針和構造剖析.
课程内容: 今天我們找的是快捷键構造,從快捷键寄存的技藝ID中我們剖析出了暫時寄存的内存數據地址,從這個地址我們找到了快捷键技藝ID的來源以及快捷键的構造.
课程重點:
1.肯定找到中數據來源以及作用
2.數值的回逆
3.構造公式的剖析
076-明文包尋觅與剖析.
课程内容: 某游戲的明文包的剖析.
课程重點:
1.找到明文包重要的參數.
077-與NPC對話功用代码的剖析.
课程内容: 剖析對話功用代码,找到NPC構造,角色構造,游戲計算間隔的函數以及坐標數據.
课程重點:
1.學會剖析重要的跳轉
2.學會從普通功用剖析數據
078-NPC對話列表構造的剖析.
课程内容:剖析了NPC對話框列表構造.
课程重點:
1.構造剖析的步骤解說
2.構造成員的内存定位
3.數據來源的剖析解說
4.ID計算公式的剖析.
079-如何開阔思緒剖析構造數據.
课程内容:經過血量剖析到物品信息構造,在經過物品構造指針破解到吃藥所讀取的CALL以及他保管構造指針的二叉樹.並且最後剖析到了,整個控件的構造,經過剖析我們得到了,生活技藝,宠物技藝,聊天表情等數據.
课程重點:
1.構造的剖析並非由一定要由構造成員去做打破點
2.學會開阔思緒.
3.信息指針可能由多個構造保管.
4.每個保管的構造他的作用可能都不同.
080-從提示CALL到技藝構造
课程内容:從上一節课中的提示CALL,剖析出技藝構造。
课程重點:
1.目的方向的剖析
2.條件判別的剖析
081-NPC商店物品列表構造的剖析
课程内容:搜索物品的稱號我們找到了很多個地址,那麼哪個是正確的呢?經過改動内容的值我們找到了真正的地址,並經過剖析我們剖析出了他的構造.
课程重點:
1.定位構造内存
2.參數的來源
代码脚本實例篇教程細致目錄:
001-界面及框架設計.
课程内容: 設計一個辅Z的框架以及界面的設計
课程重點:
1.界面設計
2.辅Z類的運用
3.代码框架設計
002-角色構造剖析以及宏的引見
课程内容:引見了宏的概念,剖析了角色的構造偏移,以及基址的剖析,並且顯現出來
课程重點:
1.宏的引見
2.宏的應用
3.窄字符串和寬字符串的轉換
4.基址來源的剖析
5.構造偏移的剖析
6.内存訪問與内存寫入查找的區別
003-配置讀取框架設計以及人物在線的判別
课程内容:設計一個自動讀取角色當前配置的框架
课程重點:
1.人物在線的判別剖析
2.配置框架的讀取判別
3.調試錯誤信息的應用
4.代码錯誤的調試辦法
004-命名規則解說
课程内容:變量命名規則简單解說.
005-尋路CALL的剖析
课程内容:用尋路標誌剖析出尋路CALL,並剖析他的參數以及用程序調用
课程重點:
1.參數的結構
2.錯誤的掃除
006-發包流程的剖析以及選中怪物封包CALL的調用
课程内容:數據的來源並非憑空生成,所以我們能夠從send動手去尋觅他的來源.
课程重點
1.數據來源的剖析過程
2.封包CALL的調用
007-用代码完成封包的定義以及選中功用的調用
课程内容:如何用VC定義封包,以及調用發包CALL
课程重點
1.封包的定義
2.錯誤的調試辦法
008-自動任務@承受放棄任務功用的剖析與完成
课程内容:用封包結構來完成承受任務和放棄任務
课程重點:
1.CALL的調用
2.封包的結構
3.構造的對齊
009-自動任務@遍歷四周人物信息
课程内容:從選中怪物的代码動手,我們尋觅ID的來源找到了人物的數組信息,然後經過搜索字符串字節集搜索到了任務的偏移,最後我們用代码遍歷出了NPC的信息。
课程重點:
1.數據的來源破解
2.用代码剖析出數組的大小
3.字符串偏移的剖析
4.用代码遍歷數組
010-LUA根底應用
课程内容:解說了C如何取出脚本里函數的參數以及脚本里調用C的函數並得到他的返回值。
课程重點:
1.LUA脚本調用C函數
2.LUA脚本取出C返回值
3.C++得到LUA脚本的參數
011-LUA根底應用2
课程内容LUA中的函數,逻輯,以及變量和表達式
课程重點:
1.LUA脚本语法規則
012-LUA脚本應用之梗塞尋路函數
课程内容:讓尋路走到目的後在退出函數.
课程重點:
1.無
013-LUA脚本應用之任務脚本流程
课程内容:設計任務脚本框架雏形
课程重點:
1.LUA根底學問的應用
2.任務脚本的框架設計
014-LUA表(數組)的概念及應用
课程内容LUA數組的概念,以及根底應用
课程重點:
1.LUA一維數組的赋值,遍歷,讀取
2.LUA多維數組的赋值,遍歷,讀取
015-任務構造信息的剖析
课程内容: 首先我們經過數量剖析,發現我們無法經過任務的物品數量來剖析出任務構造,接著我們用任務描绘來找到並剖析出任務的構造
课程重點:
1.構造遍歷代码的剖析
016-任務構造信息的遍歷
课程内容: 用VC++代码遍歷出任務構造信息课程重點:
1.調試錯誤信息
2.編寫遍歷數組代码
017-任務完成判別以及任務脚本準備
课程内容: 任務完成判別的剖析以及一些代码的修正
课程重點:
1.辅Z運轉的判別
2.脚本運轉終了後的處置
3.任務判別代码的流程
018-自動任務脚本框架樹立
课程内容:任務脚本框架的設計
课程重點:
1.自動任務框架設計
2.不測中缀處置機製
019-編寫自動任務脚本1-對話完成類任務
课程内容: 用上一節课的框架來編寫自動任務脚本.
020-編寫自動任務脚本2-對話框關閉剖析處置
课程内容:NPC對話框翻開的時分無法尋路,那麼如何處置呢?
课程重點:
1.剖析關閉NPC CALL
021-編寫自動任務脚本3-打怪任務編寫
课程内容:編寫自動選中最近的怪物.
课程重點:
冒泡選中自動最近的怪物.
022-編寫自動任務脚本4-打怪任務編寫课程内容:編寫循環打怪
023-編寫自動任務脚本5-打怪任務編寫
课程内容UA完成打怪任務
课程重點:
1.判別如何跳出打怪循環
024-編寫自動尋圖-尋圖算法解說
课程内容:廣度優先算法特性的解說
025-編寫自動尋圖-脚本代码完成算法
课程内容:用lua脚本代码編寫廣度優先算法尋圖
026-編寫自動尋圖-BUG掃除
课程内容:掃除脚本里的BUG
027-尋圖算法要點以及LUA表的其他應用
课程内容:尋圖算法重要的一些要點,以及表在自動任務中的應用
028 掛機流程1-狀態形式解說
声明:所有内容均收集于网络,收集的内容仅供内部学习和讨论,建议您在下载后的24个小时之内从您的电脑或手机中删除上述内容,如果您喜欢该内容,请支持并购买正版资源。如若本站内容侵犯了原著者的合法权益,请联系邮箱648765304@qq.com,我们将及时处理,本文链接:https://dbbp.net/2999.html
0

评论0

站点公告

小虎资源网因各项成本逐渐加大,优质课程资源不断增多,明日将会恢复至原价499一年,今日只需299开通年费会员,后续续费每年9.9元。网站始于2020年,稳定运行超过5年,每日更新,全站课程不加密,目前已收录全网五十多家机构,累积更新各大机构一百多T教程,总课程价值超过百万,比我们便宜的没有我们全,和我们一样全的没我们便宜,抓紧时间提升自己最重要。会员权益查看:点击会员介绍 其他加密课程或者代找其他课程联系微信:648765304
显示验证码
没有账号?注册  忘记密码?