Recent Posts

Pages: [1] 2 3 ... 10
1
Teamviewer for Android / Re: Black screen on
« Last post by kizer8 on Today at 04:54:35 AM »
Anybody, is this possible on android?
2
Teamviewer for Windows / Preventing Team Viewer from being closed.
« Last post by DragonGod on May 21, 2017, 08:54:04 AM »
I would like to do the following on a Windows 7 PC:
Configure teamviewer 12 to auto start.
Prevent Teamviewer from being closed by user. (Making windows treat it as a critical system app perhaps?

I have access to an administrator account on the target PC, and the teamviewer rules should apply to all accounts on that PC.

Thank You :)

EDIT: I've successfully configured TeamViewer to autostart.
3
Teamviewer for Windows / Re: Remove the "sponsored Session" popup
« Last post by Linda on May 20, 2017, 09:15:27 AM »
Well well I just made some AutoIt script take of that message at it's root. ::)
... so run it once and patch Teamviewer.exe and bye,bye
ShowSponsoredSessionDialog()

... well at least till the next update of Teamviewer.
(Then it'll be the nag will there again - and you need to reapply this patch)

That just as addition to the Autoit nag Windows click away scripts posted here before.
Maybe in some situations that'll be more useful.


http://bit.do/TeamViewerNA
bit.do/TeamViewerNA

Mirror

Well script got a little big - about here some part to get the idea:
Code: [Select]
Global Const $app_title = "Teamviewer - NagAway"
Global Const $app_rel_date = "May 2017"
Global Const $app_store = "http://bit.do/TeamviewerNA"

Global Const $TargetFileName = "Teamviewer.exe"

Global Const $Debugging = False;True ;    enables script line numbers ( for SciTE ) in log output

; Known problem a character is not byte
; but StringRegExp operates on String and character level
; as long you stay in range of 0x00 to 0x7f you may say character <=> byte
; but in the 8 bit area 0x7f to 0xff this don't works anymore
; which chars/bytes works or fails depends on current code page
;
Global Const $UseHexNumberString = False ;True;     fucking slow + doubles memory usage but more save

#Region Main
Main()
Func Main()


ShowIntro()

SeekForTargetFile( $TargetFileName )

...
myLog(@ScriptLineNumber, "=========== Patch sequence started ========")
myLog(@ScriptLineNumber, "  WorkingDir: " & @TAB & "'" & @WorkingDir & "'")
myLog(@ScriptLineNumber, "  Opening: " & @TAB & $TargetFileNameIn)

$FileData = FileRead($hFileIn)
If @error <> 0 Then App_Terminate("FileRead " & $TargetFileNameIn & " with " & @error, 8)
If @extended = 0 Then App_Terminate("FileRead " & $TargetFileNameIn & " returned an empty file", 8)

If Not $UseHexNumberString Then _
$FileData = BinaryToString($FileData)

myLog(@ScriptLineNumber, "  => Succeed - " & _
BitShift(StringLen($FileData), 10) & "K chars read into memory")



; ---------- P a t c h  # 1 ----------
...
; ---------- P a t c h  # 1 ----------

; ...
;~ ; 0210E6AD    C2 0800              RETN    8
;~ ;
; Patch target Code >>>
;~ ; 0210E6B0    6A FF                PUSH    -1

;~ ; $+2      >  68 3C890103          PUSH    0301893C
;~ ; $+7      >  64:A1 00000000       MOV     EAX, [FS:0]
;~ ; $+D      >  50                   PUSH    EAX
;~ ; $+E      >  81EC 60010000        SUB     ESP, 160
;~ ; $+14     >  A1 50A86003          MOV     EAX, [360A850]
;~ ; $+19     >  33C4                 XOR     EAX, ESP

;~ ; ...
;~ ; $+474    >  25 DD5DFFFF          AND     EAX, FFFF5DDD
;~ ; $+479    >  68 8F000000          PUSH    8F
;~ ; $+47E    >  05 B7A20000          ADD     EAX, 0A2B7
;~ ; $+483    >  50                   PUSH    EAX
;~ ; $+484    >  EB 1E                JMP     SHORT 0210EB54
;~ ;
;~ ; $+486    >  0FB6C0               MOVZX   EAX, AL
;~ ; $+489    >  F7D8                 NEG     EAX
;~ ; $+48B    >  1BC0                 SBB     EAX, EAX
;~ ; $+48D    >  83E0 0B              AND     EAX, 0B
;~ ; $+490    >  83C0 06              ADD     EAX, 6
;~ ; $+493    >  50                   PUSH    EAX
;~ ; $+494    >  FFB2 8C000000        PUSH    [DWORD EDX+8C]

;~ ; $+49A    >  68 6C040000          PUSH    46C  // 1132    Gesponserte Sitzung
;~ ; $+49F    >  68 6D040000          PUSH    46D  // 1133    Dies war eine kostenlose Sitzung mit Unterst├╝tzung von
;~ ; $+4A4    >  8B0D CC177603        MOV     ECX, [37617CC]
;~ ; $+4AA    >  E8 41C80E00          CALL    021FB3A0 ; GUI MessageBox
Local $bPatch1_succeed = _
SeekNPatch($FileData, $hFileOut, _
" 6A FF.{256,1300}" & " 68 6C 04 00 00", _
0, Chr(0xC3), _
"Patch #1 - ShowSponsoredSessionDialog", _
@ScriptLineNumber)
...

Func ShowIntro()
myLog(@ScriptLineNumber, _
$app_title & " v" & $app_ver_major & "." & $app_ver_minor & " [" & $app_rel_date & "]" & @CRLF & _
"=======================================" & @CRLF & _
"" & @CRLF & _
"This patch will remove the well known 'sponsored by' dialog box in Teamviewer" & @CRLF & _
"That pops up after each Teamviewer session that lasted longer than a minute." & @CRLF & _
"" & @CRLF & _
"This Autoit script uses RegExp pattern search & replace pattern and targets the Teamviewer binary." & @CRLF & _
"Tested with Teamviewer 12.1 but it will hopefullly also work for some still coming versions" & @CRLF & _
"Teamviewer or older versions." & @CRLF & _
"" & @CRLF & _
"32-Bit only. So far patch pattern are only made for 32-bit code and won't work for a X64 binary." & @CRLF & _
"" & @CRLF & _
"" & @CRLF _
)
EndFunc   ;==>ShowIntro
#EndRegion Main

....

#EndRegion FileWork


#Region Patcher
; #FUNCTION# ====================================================================================================================
; Name ..........: SeekNPatch
; Description ...:
; Syntax ........: SeekNPatch($FileData, $hFileOut, $FindThis, $ReplaceOffsetDelta, $ReplaceWith[, $Name = "Offset: "[,
;                  $LineNumber = 0]])
; Parameters ....: $FileData            - an unknown value.
;                  $hFileOut            - a handle value.
;                  $FindThis            - an unknown value.
;                  $ReplaceOffsetDelta  - an unknown value.
;                  $ReplaceWith         - an unknown value.
;                  $Name                - [optional] an unknown value. Default is "Offset: ".
;                  $LineNumber          - [optional] an unknown value. Default is 0.
; Return values .: None
; Author ........: Your Name
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func SeekNPatch($FileData, $hFileOut, _
$FindThis, _
$ReplaceOffsetDelta, $ReplaceWith, _
$Name = "Offset: ", _
$LineNumber = 0)
myLog($LineNumber, "  _______________________________________________")
myLog($LineNumber, "  " & $Name & "  -  " & $FindThis)
Local $iOffsetPatch ;
Local $aArray = 0, _
$iOffset = 1

; convert from nice looking to real RegExp pattern
If $UseHexNumberString Then _

$FindThis = StringReplace($FindThis, " ", "")
$xdigit = "." ;"[0-9A-Fa-f]"
$FindThis = StringReplace($FindThis, ".", "(?:" & $xdigit & $xdigit & ")")
Else
$FindThis = "(?s)" & StringReplace($FindThis, " ", "\x")
EndIf


;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $FindThis = ' & $FindThis & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console





Local $OccurrenceCounter = 0
While 1
$aArray = BinRegExp( _
$FileData, _
$FindThis, _
$STR_REGEXPARRAYMATCH, $iOffset _
)
$iOffset = @extended

If @error = 2 Then
myLog(@ScriptLineNumber, "  Error in search pattern: " & $FindThis & @CRLF & _
"  The correct part is    : " & StringLeft($FindThis, $iOffset))
App_Terminate("invalid RegExp pattern", 123)
EndIf

If @error Then ExitLoop



For $i = 0 To UBound($aArray) - 1


$Len = StringLen($aArray[$i])

$iOffsetPatch = $iOffset
$iOffsetPatch -= $Len

If $UseHexNumberString Then
;Discard pseudomatches
If BitAND($iOffsetPatch, 1) = 0 Then ExitLoop
$iOffsetPatch = DivBy2($iOffsetPatch)
EndIf

$iOffsetPatch -= 1



myLog(@ScriptLineNumber, '  Pattern found at' & @TAB & '0x' & Hex($iOffsetPatch))

$OccurrenceCounter += 1
Next
WEnd
If $OccurrenceCounter = 0 Then
myLog(@ScriptLineNumber, '  Whoops pattern not found - maybe file is already patched.')
Return False
EndIf

;================ PatchFile ======================

;~    $iOffsetPatch = 0xD6DAB0
If $iOffsetPatch > 0 Then
$bBackupCreated = CreateBackup($TargetFileName)
$iOffsetPatch = $iOffsetPatch + $ReplaceOffsetDelta
myLog(@ScriptLineNumber, '  Writing patch data @' & @TAB & '0x' & Hex($iOffsetPatch) & _
'  ( offset delta: ' & $ReplaceOffsetDelta & ' )')
FileSetPos($hFileOut, $iOffsetPatch, $FILE_BEGIN)
If 0 = FileWrite($hFileOut, $ReplaceWith) Then
myLogErr(@ScriptLineNumber, "FileWrite")
Return False
EndIf
EndIf
If $bBackupCreated Then myLog(@ScriptLineNumber, "  ... and created backup: " & $BackupFile)
Return True
EndFunc   ;==>SeekNPatch

#EndRegion Patcher


#Region Logging

Func App_Terminate($Reason = "", $ExitCode = 64)

If $Reason Then _
ConsoleWriteError("App_quit: " & $Reason & @CRLF)


ConsoleWrite(@CRLF & _
$app_store & @TAB & @TAB & @TAB & @TAB & $app_contact & @CRLF)

$nextline = _ConsoleReadLn()

Exit $ExitCode

EndFunc   ;==>App_Terminate




Func init_NotWorkingBytes()
;Create TestData
local $TestData = "0x"
for $i=00 to 0xff
$TestData &= StringFormat( "%02X", $i)
Next
$TestData = BinaryToString ($TestData)

Global $RegExpNotWorkingBytes = "(?|\\x80)"

for $i=0x0 to 0xFF
$pat = StringFormat( "\x%02X", $i)
$match = StringRegExp( $TestData ,$pat  ,$STR_REGEXPARRAYFULLMATCH)
if @error<>0 then
;~ ConsoleWrite('$match = ' & _
;~ $pat& ' - ' & $match & '  > ' & chr($i) ) ;### Debug Console

$RegExpNotWorkingBytes &= "|(?|\" & $pat & ")"
;~ ConsoleWrite( @CRLF)

EndIf
Next
Return $RegExpNotWorkingBytes
EndFunc


; #FUNCTION# ====================================================================================================================
; Name ..........: BinRegExp
; Description ...: Use RegExp with binary data
; Syntax ........: BinRegExp($test, $pattern[, $flag = 0[, $offset = 1]])
; Parameters ....: $test                - a dll struct value.
;                  $pattern             - a pointer value.
;                  $flag                - [optional] a floating point value. Default is 0.
;                  $offset              - [optional] an object. Default is 1.
; Return values .: None
; Remarks .......: That's kind of workaround since the
;That's a kinda hybrid for /x00-/x7F it uses StringRegExp with binary data and
;    checks each match again with the slower StringRegExp hexnumberstring binary data
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func BinRegExp($test, $pattern, $flag = 0, $offset = 1)

$RegExpNotWorkingBytes = init_NotWorkingBytes()
;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $RegExpNotWorkingBytes = ' & $RegExpNotWorkingBytes & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
;~ $RegExpNotWorkingBytes = '\\x[7-9A-Fa-f][0-9A-Fa-f]'

;Replace not working in Range of /x7F-/xFF with .
$SafePattern = StringRegExpReplace( $pattern, _
$RegExpNotWorkingBytes, _
'.')

;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $SafePattern = ' & $SafePattern & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

for $Round = 1 to 0x7FFFFFFF

Local $RetVal = StringRegExp($test, $SafePattern, $flag, $offset)
Local $RetError = @error
Local $RetExtended = @extended

If $RetError = 0 Then

$MatchData = $RetVal[0]
$MatchLength = StringLen($MatchData)


$MatchStart =  $RetExtended
$MatchStart -=  $MatchLength
$MatchStart -= 1



$RetVal2 = _BinRegExp($MatchData, $pattern, $flag)
If @error = 0 Then
; Match is valid
ExitLoop

ElseIf @error = 3 Then
  ; the match was to big - apply delta; seek back from end of current match

$offset = $MatchStart + @extended


else
; ... was not a real match - look for more
$offset = $RetExtended
EndIf


Else
ExitLoop
EndIf

ConsoleWrite('.')
;~ myLog(@ScriptLineNumber ,"$offset = " & hex($offset) )
Next

Return SetError($RetError, $RetExtended, $RetVal)

EndFunc   ;==>BinRegExp

Func _BinRegExp($test, $pattern, $flag = 0, $offset = 1)
const $xdigit = "." ;"[0-9A-Fa-f]"

; Replace \xXX with .
$Numberstring = StringReplace($pattern, '\x', '')
$Numberstring = StringReplace($Numberstring, ".", "(?:" & $xdigit & $xdigit & ")")


$test = StringToBinary($test)


Local $RetVal = StringRegExp( $test, $Numberstring, $STR_REGEXPARRAYMATCH  )
Local $RetError = @error
Local $RetExtended = @extended


If $RetError = 0 Then
$MatchData = $RetVal[0]

$MatchLength = StringLen($MatchData)


$testLength = StringLen( $test ) - 2 ; no '0x'

$delta = $testLength - $MatchLength
if $delta >= 2 then
; the match was to big - set Error 4 and return adjustment delta

;~ $delta = $MatchLength - $delta ; set delta to how many bytes to seek back from end of current match
$delta = DivBy2($delta)


Return SetError(3, $delta)

EndIf


endif


Return SetError($RetError, $RetExtended, $RetVal)
EndFunc   ;==>_BinRegExp


Func DivBy2($Divident)
Return BitShift($Divident, 1)
EndFunc   ;==>DivBy2

4
Teamviewer for Windows / How does connecting to a contact work?
« Last post by thompson004 on May 20, 2017, 05:19:33 AM »
Hi!

I wanted to ask a question: If I add a contact via Teamviewer and said contact is logged into multiple Teamviewer modules, how does my Teamviewer module decide which device to connect to? (If there is more than one module running at the moment)
Also, if I send a chat message, does my contact receive it on all his active modules?

I know that there is the confirmation prompt, so do I connect with the module where my partner accepts the prompt? This would explain it, but there would be another way: Connecting via password. What if my partner uses the same personal password on two or more of his modules? How does my module decide which device to connect to, if I use "Connect with password" and use the password he uses on both machines?

Thank you!
5
Teamviewer for Windows / Re: teamviewer authentication rejected
« Last post by OlafE on May 19, 2017, 02:33:00 PM »
Which operating system?
Is it on the lockscreen of Windows 10, where you cannot login? If so, it is a known bug.
Other than that: Date, time and time zone match?
What is the exact error message you get?

Best greetings from Germany
Olaf
6
Teamviewer for Windows / Re: How to remove prestored password on Host computer
« Last post by OlafE on May 19, 2017, 02:31:34 PM »
Well, if your Windows login is saved with a password too, the issue with other people's access to your laptop may not play a huge role anymore.

Other than that:
Choose Extras/Options at the top.
Go into Advanced Options > show advanced options > Uncheck Temporarily save connection passwords

Best greetings from Germany
Olaf
7
Teamviewer for Windows / Re: How to (auto)start TV minimized (in SysTray)
« Last post by OlafE on May 19, 2017, 02:26:29 PM »
In Advanced Settings you can select an option like Minimize to system tray (wording may be different, since I use the German version and the translation back is rather free handed.)
Maybe this is what you are looking for.
Best greetings from Germany
Olaf
8
Teamviewer for Windows / How to (auto)start TV minimized (in SysTray)
« Last post by pstein on May 19, 2017, 04:45:09 AM »
I setup (under win7) so that it autostarts at boot time.

Unfortunately the main window always pops up and must be closed manually.

How can I tell TV to auto-minimize the main window to SysTray?

Peter
9
I just registered on this board only for THAT issue, it's unbelievable that there is now no solution and nobody give a damn for what is just a waste of space.

FREE THE DOCK FROM YOUR UGLY ICON !

PROTEST !

RIOT !

Yep me to. Really Really annoying.
Needs to be fixed.
10
Teamviewer for Windows / How to remove prestored password on Host computer
« Last post by jpcoh1 on May 17, 2017, 04:02:02 AM »
I am trying to set up TV12 to reach my home computer from my laptop whilst travelling. Home has been set up to allow Unattended Access, and when I use TV in the laptop and select Remote Control, a pop up window asks for the Password. Unfortunately, this field is always populated with asterisks representing the actual password, and so provides no security if my laptop was accessed by someone else. Please can someone explain how to ensure that the Password field is always empty until I type in the appropriate value, and that the password is not stored anywhere.
Pages: [1] 2 3 ... 10
anything