This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

IP Control of LG TVs
#5
First, you need to encrypt password using PBKDF2. Go to https://8gwifi.org/pbkdf.jsp and input the following data:
Code:
Master Password: your pairing code (BK2AT22Y)
Salt: Y2G4DpvcpmONByDyzFaPuQ==
Iteration: 16384
dkLen: 128
PBE Ciphers: PBKDF2WithHmacSHA256

Use aes.lua from this post: https://forum.logicmachine.net/showthrea...7#pid12807
Save it as a user library named aes

Example, change key to the one that you've generated. Change ip and cmd as needed. \r is added to command automatically.
Code:
ip = '192.168.1.100'
key = 'm7mRFt3BM+CwW3bYunE6sA=='
cmd = 'POWER off'

function encrypt(key, data)
  -- padding
  local rem = #data % 16
  if rem ~= 0 then
    rem = 16 - rem
    local ch = string.char(rem)
    data = data .. string.rep(ch, rem)
  end

  -- generate iv
  local iv = ''
  local ts, tu = os.microtime()
  math.randomseed(ts - tu)
  for i = 1, 16 do
    local ch = math.random(0, 255)
    iv = iv .. string.char(ch)
  end

  local aes = require('user.aes')

  -- encrypt iv
  local aes_128_ecb, err = aes:new(key, nil, aes.cipher(128, 'ecb'), { iv = string.rep('\0', 16) }, nil, 0)
  local ivenc = aes_128_ecb:encrypt(iv)

  -- encypt data
  local aes_128_cbc, err = aes:new(key, nil, aes.cipher(128, 'cbc'), { iv = iv }, nil, 0)
  local dataenc = aes_128_cbc:encrypt(data)

  return ivenc .. dataenc
end

function send(ip, key, cmd)
  local sock = require('socket').tcp()
  sock:settimeout(3)
  local res, err = sock:connect(ip, 9761)

  if res then
    key = require('encdec').base64dec(key)
    cmd = cmd .. '\r'

    local data = encrypt(key, cmd)
    res, err = sock:send(data)
    if res then
      reply = sock:receive(16)
    end
  end

  sock:close()
  return res, err
end

res, err = send(ip, key, cmd)
log(res, err)
Reply


Messages In This Thread
IP Control of LG TVs - by jamesng - 16.12.2019, 15:05
RE: IP Control of LG TVs - by admin - 23.12.2019, 09:37
RE: IP Control of LG TVs - by AlexLV - 23.12.2019, 13:17
RE: IP Control of LG TVs - by jamesng - 24.12.2019, 01:26
RE: IP Control of LG TVs - by admin - 24.12.2019, 06:48
RE: IP Control of LG TVs - by benanderson_475 - 24.12.2020, 05:27
RE: IP Control of LG TVs - by jamesng - 29.12.2019, 10:26
RE: IP Control of LG TVs - by admin - 04.05.2020, 05:19
RE: IP Control of LG TVs - by lamgia99 - 17.10.2023, 10:19
RE: IP Control of LG TVs - by admin - 24.12.2020, 08:58
RE: IP Control of LG TVs - by benanderson_475 - 24.12.2020, 09:20
RE: IP Control of LG TVs - by admin - 25.12.2020, 14:08
RE: IP Control of LG TVs - by benanderson_475 - 26.12.2020, 09:12
RE: IP Control of LG TVs - by jlodvo - 26.03.2021, 22:37
RE: IP Control of LG TVs - by admin - 27.03.2021, 09:01
RE: IP Control of LG TVs - by admin - 17.10.2023, 10:27
RE: IP Control of LG TVs - by Igori - 26.04.2024, 14:54
RE: IP Control of LG TVs - by admin - 29.04.2024, 06:25
RE: IP Control of LG TVs - by Igori - 30.04.2024, 14:35

Forum Jump: