RDP Wrapper Library 之自己搞定rdpwrap.ini更新
RDP Wrapper Library支援多使用者Windows版本遠端桌面很爽,但是windows 10 經常更新,導致版本升級無法使用。
具體怎麼更新,https://blog.csdn.net/u010804317/article/details/104011926 文章寫得最全,關於如何取代rdpwrap.ini 如何 更新,
說的也比較詳細明白,但是有些含糊之處,特此補充。
(1) 更新rdpwrap.ini
作者說可以網上搜issue,但是我的經驗是經常搜到也打不開,不知道是網路還是什麼原因。因此還是覺得需要靠自己想辦法。
注意到, https://github.com/asmtron/rdpwrap 據說有大牛寫了自動更新ini 的批處理。
裡面有autoupdate.bat 內容我測試有些bug,但是不想除錯批處理。但是發現批處理里值得注意的是
裡面竟然有ini的源地址
https://raw.githubusercontent.com/saurav-biswas/rdpwrap-1/master/res/rdpwrap.ini
還有其他的如下
set rdpwrap_ini_update_github_1="https://raw.githubusercontent.com/asmtron/rdpwrap/master/res/rdpwrap.ini"
set rdpwrap_ini_update_github_2="https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini"
set rdpwrap_ini_update_github_3="https://raw.githubusercontent.com/affinityv/INI-RDPWRAP/master/rdpwrap.ini"
set rdpwrap_ini_update_github_4="https://raw.githubusercontent.com/DrDrrae/rdpwrap/master/res/rdpwrap.ini"
set rdpwrap_ini_update_github_5="https://raw.githubusercontent.com/saurav-biswas/rdpwrap-1/master/res/rdpwrap.ini"
我們無法直接下載,不確定原因,又因為https 只能使用網域名稱,因此直接使用
https://site.ip138.com/raw.Githubusercontent.com/
搜尋到的IP ,加入windows 的 hosts
直接瀏覽器執行
https://raw.githubusercontent.com/saurav-biswas/rdpwrap-1/master/res/rdpwrap.ini
存入 rdpwrap.ini 就可以了。 我的版本更新到的是10天前windows 更新的版本。算是最新的了。
注意取代時需要停止服務,再重啟。
2)第二種方法,全部自己搞定
前面文章中分析到了遠端桌面,主要是hook了termsrv.dll 所以找到如何搜尋地址的方法
完全可以自己搞定
[10.0.17763.1-SLInit] RDPWrapper能支援的termsrv.dll版本號
bInitialized.x86 =CD798 X86這是針對32位系統的配置
bServerSku.x86 =CD79C
lMaxUserSessions.x86 =CD7A0
bAppServerAllowed.x86 =CD7A8
bRemoteConnAllowed.x86=CD7AC
bMultimonAllowed.x86 =CD7B0
ulMaxDebugSessions.x86=CD7B4
bFUSEnabled.x86 =CD7B8
bInitialized.x64 =ECAB0 x64這是針對64位系統的配置
bServerSku.x64 =ECAB4
lMaxUserSessions.x64 =ECAB8
bAppServerAllowed.x64 =ECAC0
bRemoteConnAllowed.x64=ECAC4
bMultimonAllowed.x64 =ECAC8
ulMaxDebugSessions.x64=ECACC
bFUSEnabled.x64 =ECAD0
https://github.com/asmtron/rdpwrap
注意到,rdpwrap-ini-kb.txt
; HOW TO search CDefPolicy::Query function in IDA Pro:
; 1. Search text: CDefPolicy::Query
; 2. All xrefs will point to this function (in x64 version xref sometimes points to subroutine, so you need to go one level up)
; 3. Go to first graph block and find cmp/jz instructions on the bottom of block
; Patch CDefPolicy::Query
; Original
; .text:6F335CD8 cmp edx, [ecx+320h]
; .text:6F335CDE pop esi
; .text:6F335CDF jz loc_6F3426F1
; Changed
; .text:6F335CD8 mov edx, 100h
; .text:6F335CDD mov [ecx+320h], edx
; .text:6F335CE3 pop esi
; .text:6F335CE4 nop
DefPolicyPatch.x86=1
DefPolicyOffset.x86=15CD8
DefPolicyCode.x86=CDefPolicy_Query_edx_ecx
參照這個發現其實可以透過 IDA Pro 自行分析解決。裡面有樣例 就不一一解答。
開啟IDE64
預設就可以開啟。
按照說明搜尋即可,自己就可以編輯了。再也不用麻煩別人了。
注意在反編譯時,注意IDA 自動修改下載pdb 檔案, 不知道是否是版本問題,
PDB: downloading http://msdl.microsoft.com/download/symbols/termsrv.pdb/F5515C5CD4624F8ED1C2CC87D62F7A451/termsrv.pdb => C:Users
下載失敗,認為是因為現在都用https協定,所以失敗。加上https 自行下載 儲存就OK
IDA pro 載入pdb後 可以顯示函式名
實在沒有時間自己反編譯製作INI檔案,偷個懶自己直接下載了
不過研究的過程很有趣。
第一篇立此為據!