Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Função para executar operação do dump juntamente com os valores solicitados com as palavras chave na busca
- function hcDump()
- -- Função para ler ou escrever na memória
- function rwmem(Address, SizeOrBuffer)
- -- Verifica se o endereço fornecido não é nulo
- assert(Address ~= nil, "[rwmem]: erro, o endereço fornecido é nulo.")
- _rw = {} -- Cria uma tabela vazia para armazenar informações de leitura/escrita
- -- Verifica se SizeOrBuffer é um número (para leitura)
- if type(SizeOrBuffer) == "number" then
- _ = "" -- Inicializa uma string vazia para armazenar os bytes lidos
- -- Cria uma série de registros de leitura para cada byte na faixa de endereços
- for i = 1, SizeOrBuffer do
- _rw[i] = {
- address = Address - 1 + i, -- Calcula o endereço para o byte atual
- flags = gg.TYPE_BYTE -- Define o tipo de dados como byte
- }
- end
- -- Lê os valores da memória e forma uma string hexadecimal com os bytes
- for i, i in ipairs(gg.getValues(_rw)) do
- if i.value == 0 and limit == true then
- return _ -- Se encontrar um byte 0 e "limit" for verdadeiro, retorna a string atual
- end
- _ = _ .. string.format("%02X", i.value & 255) -- Formata o byte como hexadecimal
- end
- return _ -- Retorna a string hexadecimal resultante
- end
- Byte = {} -- Cria uma tabela para armazenar bytes
- -- Divide a string em pares de dois caracteres (bytes) e armazena em "Byte"
- SizeOrBuffer:gsub("..", function(x)
- Byte[#Byte + 1] = x -- Armazena o byte atual em "Byte"
- _rw[#Byte] = {
- address = Address - 1 + #Byte, -- Calcula o endereço para o byte atual
- flags = gg.TYPE_BYTE, -- Define o tipo de dados como byte
- value = x .. "h" -- Define o valor como o byte hexadecimal
- }
- end)
- gg.setValues(_rw) -- Escreve os bytes na memória nos endereços calculados
- end
- -- Função para decodificar valores Base64
- function base64Decode(data)
- local b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
- data = string.gsub(data, "[^" .. b .. "=]", "") -- Remove caracteres inválidos
- -- Decodifica cada caractere na string de entrada
- return (data:gsub(".", function(x)
- if x == "=" then return "" end
- local r, f = "", (b:find(x) - 1)
- -- Converte o caractere em um valor binário de 6 bits
- for i = 6, 1, -1 do
- r = r .. (f % 2 ^ i - f % 2 ^ (i - 1) > 0 and "1" or "0")
- end
- return r
- end):gsub("%d%d%d?%d?%d?%d?%d?%d?", function(x)
- if (#x ~= 8) then return "" end
- local c = 0
- -- Converte o valor binário de 8 bits em um caractere ASCII
- for i = 1, 8 do
- c = c + (x:sub(i, i) == "1" and 2 ^ (8 - i) or 0)
- end
- return string.char(c)
- end))
- end
- -- Função para decodificar uma string hexadecimal em ASCII
- function hd(hex)
- -- A função `gsub` percorre a string hexadecimal e a converte em caracteres ASCII
- return (hex:gsub("%x%x", function(digits)
- -- A função `tonumber` converte os dígitos hexadecimais em números inteiros
- -- E então, a função `string.char` converte o número em um caractere ASCII correspondente
- return string.char(tonumber(digits, 16))
- end))
- end
- -- Função para codificar uma string em sua representação hexadecimal
- function he(str)
- -- A função `gsub` percorre cada caractere da string de entrada
- return (str:gsub(".", function(char)
- -- A função `char:byte()` obtém o valor numérico do caractere na tabela ASCII
- -- E então, `string.format` converte esse valor em uma representação hexadecimal com 2 dígitos
- return string.format("%2x", char:byte())
- end))
- end
- -- Função para decodificar uma representação hexadecimal em uma string
- function hexdecode(hex)
- -- A função `gsub` percorre pares de dígitos hexadecimais na string de entrada
- return (hex:gsub("%x%x", function(digits)
- -- A função `tonumber(digits, 16)` converte os dígitos hexadecimais em um valor numérico decimal
- -- E então, `string.char` converte esse valor numérico em um caractere na tabela ASCII
- return string.char(tonumber(digits, 16))
- end))
- end
- -- Função para codificar uma string em uma representação hexadecimal
- function hexencode(str)
- -- A função `gsub` percorre cada caractere na string de entrada
- return (str:gsub(".", function(char)
- -- A função `char:byte()` obtém o valor numérico do caractere na tabela ASCII
- -- `string.format("%2x", ...)` formata esse valor numérico como dois dígitos hexadecimais
- return string.format("%2x", char:byte())
- end))
- end
- -- Função para converter um número decimal em uma representação hexadecimal
- function Dec2Hex(nValue)
- -- A função `string.format("%X", ...)` converte o valor numérico em uma representação hexadecimal
- nHexVal = string.format("%X", nValue)
- -- Criamos uma cópia da representação hexadecimal como uma string
- sHexVal = nHexVal .. ""
- -- Retornamos a representação hexadecimal como uma string
- return sHexVal
- end
- -- Função para converter um valor em um número inteiro
- function ToInteger(number)
- -- Tenta converter o valor para um número usando tonumber()
- local intValue = tonumber(number)
- -- Se a conversão for bem-sucedida, arredonda o número para baixo usando math.floor()
- -- Caso contrário, lança um erro com uma mensagem personalizada
- return math.floor(intValue or error("Não foi possível transmitir '" .. tostring(number) .. "' para um número inteiro."))
- end
- -- Função para salvar dados em um arquivo chamado "dump_hex.txt" no armazenamento externo
- function save(data, fileName)
- fileName = fileName or "dump_hex.txt" -- Nome do arquivo a ser salvo
- local filePath = gg.EXT_STORAGE .. "/" .. fileName
- -- Abrindo o arquivo para escrita usando a função "io.open"
- local file = io.open(filePath, "w")
- if file then
- file:write(data)
- file:close()
- -- Exibindo uma mensagem de aviso usando a função "toast" do GameGuardian
- gg.toast("Te peguei, Lionel Richie!" .. fileName)
- else
- gg.alert("Falha ao salvar os dados.")
- end
- end
- -- Função para salvar dados em um arquivo chamado "dump.txt" no armazenamento externo
- function saveHC(data, fileName)
- fileName = fileName or "dump.txt" -- Nome do arquivo a ser salvo
- local filePath = gg.EXT_STORAGE .. "/" .. fileName
- -- Abrindo o arquivo para escrita usando a função "io.open"
- local file = io.open(filePath, "w")
- if file then
- file:write(data)
- file:close()
- -- Exibindo uma mensagem de comemoração usando a função "toast" do GameGuardian
- gg.toast("Te peguei, Lionel Richie! " .. fileName)
- else
- gg.alert("Falha ao salvar os dados.")
- end
- end
- -- Função para fechar as operações e enviar a prima
- function close()
- gg.clearResults()
- results = gg.getListItems()
- gg.removeListItems(results)
- print(hd("E385A4"))
- print(hd("E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A1BFE2A09BE2A09BE2A08BE2A089E2A099E2A0BBE2A0BFE2A0BFE2A0BFE2A0BFE2A2BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A1BFE2A083E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A0B9E2A3BFE2A3BFE2A3B6E2A3B6E2A3A6E2A3ACE2A2B9E2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A083E2A084E2A084E2A084E2A3B0E2A3A7E2A180E2A084E2A084E2A084E2A084E2A088E2A299E2A18BE2A3BFE2A3BFE2A3BFE2A2B8E2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A084E2A084E2A0B0E2A0BCE2A2AFE2A3BFE2A3BFE2A3A6E2A384E2A084E2A084E2A084E2A088E2A2A1E2A3BFE2A3BFE2A3BFE2A2B8E2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A084E2A084E2A0B8E2A0A4E2A095E2A09BE2A099E2A0B7E2A3BFE2A186E2A084E2A084E2A084E2A3B8E2A3BFE2A3BFE2A18FE2A3BCE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A187E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A3B4E2A3BFE2A3BFE2A3BFE2A2A1E2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A19FE2A084E2A084E2A084E2A084E2A084E2A384E2A084E2A280E2A084E2A084E2A280E2A3A4E2A3BEE2A3BFE2A3BFE2A3BFE2A283E2A3BEE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A0BFE2A39BE2A3A1E2A384E2A380E2A084E2A0A0E2A2B4E2A3BFE2A3BFE2A1BFE2A384E2A3B4E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A283E2A3BEE2A3BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A18FE2A3BCE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3A9E2A1BDE2A181E2A2B8E2A3BFE2A3BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A283E2A3BFE2A3BFE2A29FE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3AEE2A2ABE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A39FE2A2BFE2A083E2A084E2A2BBE2A3BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A1BFE2A3B8E2A09FE2A3B5E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BEE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3B7E2A384E2A2B0E2A184E2A2BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A187E2A08FE2A3BCE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3A6E2A0B9E2A18EE2A3BFE2A3BFE2A3BF0AE2A3ADE2A38DE2A09BE2A0BFE2A084E2A2B0E2A08BE2A189E2A0B9E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A099E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A19FE2A281E2A099E2A186E2A2A1E2A3BFE2A3BFE2A3BF0AE2A0BBE2A3BFE2A186E2A084E2A3A4E2A088E2A2A3E2A388E2A3A0E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A08FE2A384E2A0BBE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A386E2A388E2A3B4E2A083E2A3BFE2A3BFE2A3BFE2A3BF0AE2A180E2A088E2A2BFE2A084E2A3BFE2A187E2A084E2A099E2A0BFE2A3BFE2A1BFE2A0BFE2A28BE2A3A5E2A3BEE2A3BFE2A3B7E2A38CE2A0BBE2A2BFE2A3BFE2A3BFE2A1BFE2A09FE2A3A1E2A3BEE2A3BFE2A3BFE2A0BFE2A28B0AE2A09BE2A0B3E2A084E2A2A0E2A3BFE2A087E2A084E2A3B7E2A191E2A2B6E2A3B6E2A2BFE2A3BFE2A3BFE2A3BFE2A3BDE2A3BFE2A3BFE2A3BFE2A3B6E2A3B6E2A190E2A3B6E2A3BFE2A0BFE2A09BE2A3A9E2A184E2A084E2A2B8"))
- os.exit()
- end
- -- Definindo a variável de limite como falsa
- limit = false
- -- Limpa os resultados anteriores da busca no GameGuardian
- gg.clearResults()
- -- Define a visibilidade do GameGuardian como falsa
- gg.setVisible(false)
- -- Define a região de pesquisa no espaço de memória do Java Heap com o Game Guardian (gg)
- gg.setRanges(gg.REGION_JAVA_HEAP)
- -- Procura por um número específico na memória e armazena o resultado
- gg.searchNumber(hd("683341333833303430"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x2 = true
- end
- -- Verifica se uma flag "hc_x2" está definida e repete a pesquisa se for verdadeira
- if hc_x2 then
- gg.searchNumber(hd("6833413334333433333430"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x3 = true
- end
- end
- -- Verifica se uma flag "hc_x3" está definida e repete a pesquisa se for verdadeira
- if hc_x3 then
- gg.searchNumber(hd("68334133383330333833303430"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x4 = true
- end
- end
- -- Verifica se uma flag "hc_x4" está definida e repete a pesquisa se for verdadeira
- if hc_x4 then
- gg.searchNumber(hd("683341333233323430"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x5 = true
- end
- end
- -- Verifica se uma flag "hc_x5" está definida e repete a pesquisa se for verdadeira
- if hc_x5 then
- gg.searchNumber(hd("6834373435353432303246323034383534353435303246"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x6 = true
- end
- end
- -- Verifica se uma flag "hc_x6" está definida e repete a pesquisa se for verdadeira
- if hc_x6 then
- gg.searchNumber(hd("6835353730363737323631363436353341"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x7 = true
- end
- end
- -- Verifica se uma flag "hc_x7" está definida e repete a pesquisa se for verdadeira
- if hc_x7 then
- gg.searchNumber(hd("683633373236433636354435423633373236433636"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x8 = true
- end
- end
- -- Verifica se uma flag "hc_x8" está definida e repete a pesquisa se for verdadeira
- if hc_x8 then
- gg.searchNumber(hd("68363337323643363635443438364637333734"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x9 = true
- end
- end
- -- Verifica se uma flag "hc_x9" está definida e repete a pesquisa se for verdadeira
- if hc_x9 then
- gg.searchNumber(hd("683542373337303643363937343530373336393730363836463645354435423733373036433639373435303733363937303638364636453544"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x10 = true
- end
- end
- -- Verifica se uma flag "hc_x10" está definida e repete a pesquisa se for verdadeira
- if hc_x10 then
- gg.searchNumber(hd("68203542203733203730203643203639203734"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x11 = true
- end
- end
- -- Verifica se uma flag "hc_x11" está definida e repete a pesquisa se for verdadeira
- if hc_x11 then
- gg.searchNumber(hd("68203542203733203730203643203639203734"), gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
- local r = gg.getResults(1)
- -- Verifica se nenhum resultado foi encontrado novamente e exibe uma mensagem caso seja o caso
- if #r < 1 then
- gg.toast(hd("506169206EC3A36F20656E636F6E747261646F"))
- hc_x12 = true
- end
- end
- -- Verifica se uma flag "hc_x12" está definida e, se verdadeira, imprime uma mensagem e fecha o programa
- if hc_x12 then
- print(hd("5245494E4943494152203D20726561627265206120646976657273C3A36FF09F909D0A434F50494152203D207065727665727469646F20F09F988FF09F949E0A4F4B203D2066696E616C697A6172E298A0EFB88F"))
- close()
- end
- -- Obtém uma lista de resultados
- local r = gg.getResults(1000)
- -- Exibe uma mensagem
- gg.toast(hd("7072696D6569726F206173207072696D6173"))
- -- Se a variável "limit" for falsa, ajusta o endereço do primeiro resultado
- if limit == false then
- r[1].address = r[1].address - 22000
- end
- -- Lê uma faixa de memória com base no endereço e tamanho especificados
- readMem = rwmem(r[1].address, 58000)
- -- Salva a faixa de memória em um arquivo
- save(readMem)
- -- Salva o despejo da memória em um arquivo, convertendo-a para texto
- saveHC(hd(readMem))
- -- Limpa os resultados anteriores da busca no GameGuardian
- gg.clearResults()
- end
- -- Função para se divertir decodificando conteúdo dump.txt a ser lido e extraído informações da Conta SSH supostamente criptografada
- function hcSSH()
- -- Função para dividir uma string em partes usando um separador
- function split(inputstr, sep)
- -- Define "%s" como o separador padrão, se nenhum for especificado
- if sep == nil then
- sep = "%s"
- end
- local t = {} -- Cria uma tabela para armazenar as partes divididas
- -- Usa gmatch para encontrar todas as partes entre o separador e adicioná-las à tabela
- for str in string.gmatch(inputstr, "([^" .. sep .. "]+)") do
- table.insert(t, str) -- Insere cada parte encontrada na tabela
- end
- return t -- Retorna a tabela de partes
- end
- -- Função para filtrar as informações de IP, porta, usuário e senha
- function filter(text)
- local regex = "([%w.-]-):(%d+)@([%d-.]+):([%d-.]+)"
- local host, port, user_enc, pass_enc = text and string.match(text, regex) or nil, nil, nil, nil
- return host, port, user_enc, pass_enc
- end
- -- Função para filtrar informações relevantes de uma sequência de texto
- function filter(text)
- -- Verifica se a entrada não é nula
- if text == nil then
- print("Pai não encontrado, texto de entrada é nulo\n")
- return nil, nil, nil, nil
- end
- -- Define um padrão regex para encontrar e extrair informações de IP, porta, usuário e senha
- local regex = "([%w.-]-):(%d+)@([%d-.]+):([%d-.]+)"
- -- Usa string.match para encontrar as informações correspondentes ao padrão na sequência
- local host, port, user_enc, pass_enc = string.match(text, regex)
- -- Retorna as informações filtradas: host, porta, usuário e senha
- return host, port, user_enc, pass_enc
- end
- -- Função para realizar operações bitwise e retornar um caractere
- function bitwise(val1, val2)
- -- Verifica se val1 e val2 são números
- if type(val1) ~= "number" or type(val2) ~= "number" then
- print("Valores inválidos para operação bitwise")
- return "?" -- Caractere de substituição para valores inválidos
- end
- -- Realiza uma operação de E (bitwise) entre val1 e val2, seguida de um deslocamento para a direita e uma máscara
- local result = bit32.band(bit32.rshift(val1, val2), 0xff)
- -- Verifica se o resultado é um caractere imprimível
- if result >= 32 and result <= 126 then
- return string.char(result)
- else
- print("Resultado não é um caractere imprimível")
- return "?" -- Caractere de substituição para valores não imprimíveis
- end
- end
- -- Função para extrair informações decodificadas a partir de um texto
- function extract(data)
- local new_data = "" -- Cria uma variável para armazenar os dados decodificados
- local success, error_message = pcall(function()
- for val1, val2 in string.gmatch(data, "(-?%d+).(-?%d+)") do
- -- Usa pcall para tentar converter os valores
- local success1, num1 = pcall(tonumber, val1)
- local success2, num2 = pcall(tonumber, val2)
- if success1 and success2 then
- car = bitwise(num1, num2) -- Realiza uma operação bitwise com os valores convertidos
- new_data = new_data .. car -- Adiciona o caractere decodificado à string
- else
- -- Caso ocorra um erro na conversão, insira um caractere de substituição
- new_data = new_data .. "?" -- Caractere de substituição, você pode alterá-lo se desejar
- end
- end
- end)
- if not success then
- -- Trate o erro aqui, como exibir uma mensagem de alerta personalizada
- -- print("Nessa depuração, simplesmente não tem conta SSH no formato camuflada, por isso erro ao extrair informações decodificadas: " .. error_message)
- -- Você também pode encerrar a execução se necessário
- gg.alert(hd("E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A1BFE2A09BE2A09BE2A08BE2A089E2A099E2A0BBE2A0BFE2A0BFE2A0BFE2A0BFE2A2BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A1BFE2A083E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A0B9E2A3BFE2A3BFE2A3B6E2A3B6E2A3A6E2A3ACE2A2B9E2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A083E2A084E2A084E2A084E2A3B0E2A3A7E2A180E2A084E2A084E2A084E2A084E2A088E2A299E2A18BE2A3BFE2A3BFE2A3BFE2A2B8E2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A084E2A084E2A0B0E2A0BCE2A2AFE2A3BFE2A3BFE2A3A6E2A384E2A084E2A084E2A084E2A088E2A2A1E2A3BFE2A3BFE2A3BFE2A2B8E2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A084E2A084E2A0B8E2A0A4E2A095E2A09BE2A099E2A0B7E2A3BFE2A186E2A084E2A084E2A084E2A3B8E2A3BFE2A3BFE2A18FE2A3BCE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A187E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A084E2A3B4E2A3BFE2A3BFE2A3BFE2A2A1E2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A19FE2A084E2A084E2A084E2A084E2A084E2A384E2A084E2A280E2A084E2A084E2A280E2A3A4E2A3BEE2A3BFE2A3BFE2A3BFE2A283E2A3BEE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A0BFE2A39BE2A3A1E2A384E2A380E2A084E2A0A0E2A2B4E2A3BFE2A3BFE2A1BFE2A384E2A3B4E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A283E2A3BEE2A3BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A18FE2A3BCE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3A9E2A1BDE2A181E2A2B8E2A3BFE2A3BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A283E2A3BFE2A3BFE2A29FE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3AEE2A2ABE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A39FE2A2BFE2A083E2A084E2A2BBE2A3BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A1BFE2A3B8E2A09FE2A3B5E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BEE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3B7E2A384E2A2B0E2A184E2A2BFE2A3BFE2A3BFE2A3BF0AE2A3BFE2A3BFE2A3BFE2A3BFE2A187E2A08FE2A3BCE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3A6E2A0B9E2A18EE2A3BFE2A3BFE2A3BF0AE2A3ADE2A38DE2A09BE2A0BFE2A084E2A2B0E2A08BE2A189E2A0B9E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A099E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A19FE2A281E2A099E2A186E2A2A1E2A3BFE2A3BFE2A3BF0AE2A0BBE2A3BFE2A186E2A084E2A3A4E2A088E2A2A3E2A388E2A3A0E2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A08FE2A384E2A0BBE2A3BFE2A3BFE2A3BFE2A3BFE2A3BFE2A386E2A388E2A3B4E2A083E2A3BFE2A3BFE2A3BFE2A3BF0AE2A180E2A088E2A2BFE2A084E2A3BFE2A187E2A084E2A099E2A0BFE2A3BFE2A1BFE2A0BFE2A28BE2A3A5E2A3BEE2A3BFE2A3B7E2A38CE2A0BBE2A2BFE2A3BFE2A3BFE2A1BFE2A09FE2A3A1E2A3BEE2A3BFE2A3BFE2A0BFE2A28B0AE2A09BE2A0B3E2A084E2A2A0E2A3BFE2A087E2A084E2A3B7E2A191E2A2B6E2A3B6E2A2BFE2A3BFE2A3BFE2A3BFE2A3BDE2A3BFE2A3BFE2A3BFE2A3B6E2A3B6E2A190E2A3B6E2A3BFE2A0BFE2A09BE2A3A9E2A184E2A084E2A2B8"))
- gg.toast(hd("43616C6D612061C3AD2C205061697AC3A36F"))
- print(hd("4E6573736120646570757261C3A7C3A36F2C2073696D706C65736D656E7465206EC3A36F2074656D20636F6E746120535348206E6F20666F726D61746F2063616D75666C6164612C20706F72206973736F206572726F20616F206578747261697220696E666F726D61C3A7C3B56573206465636F6469666963616461730A"))
- print(hd("7072696D6569726F206173207072696D61730A"))
- print(hd("5245494E4943494152203D20726561627265206120646976657273C3A36FF09F909D0A434F50494152203D207065727665727469646F20F09F988FF09F949E0A4F4B203D2066696E616C697A6172E298A0EFB88F"))
- close()
- return
- end
- return new_data
- end
- -- Função para decodificar uma string hexadecimal em ASCII
- function hd(hex)
- return (hex:gsub("%x%x", function(digits)
- return string.char(tonumber(digits, 16))
- end))
- end
- -- Função para decodificar um usuário e senha
- function dec_user_pass(user, pasw)
- local decoded_user = extract(user) -- Decodifica o usuário
- local decoded_pass = extract(pasw) -- Decodifica a senha
- return decoded_user, decoded_pass
- end
- -- Obtendo o diretório do script atual
- local scriptDir = gg.getFile()
- -- Remova o nome do script do caminho
- scriptDir = scriptDir:match("(.*/)") or scriptDir
- -- Defina o nome do arquivo a ser lido (dump.txt)
- local fileName = "dump.txt"
- -- Caminho completo do arquivo
- local filePath = scriptDir .. fileName
- -- Abrindo o arquivo "dump.txt" para leitura usando a função "io.open"
- local file = io.open(filePath, "r")
- -- Verificando se o arquivo foi aberto com sucesso
- if file then
- -- Lendo todo o conteúdo do arquivo e armazenando em 'ct'
- local ct = file:read("*all")
- file:close()
- -- Faça o que você precisa com o conteúdo do arquivo (ct) aqui
- -- Por exemplo, você pode chamar a função 'filter' para obter host, porta, usuário e senha
- -- Chama a função 'filter' para extrair informações de host, porta, usuário e senha
- local host, port, user_enc, pass_enc = filter(ct)
- -- Chama a função 'dec_user_pass' para decodificar o usuário e a senha
- local user_dec, pass_dec = dec_user_pass(user_enc, pass_enc)
- -- Monta uma string para criar o conteúdo final no formato desejado
- local hc_content = "IP/Host: " .. host .. "\nPorta: " .. port .. "\nUsuário: " .. user_dec .. "\nSenha: " .. pass_dec
- hc_content = hc_content .. "\nip:port@user:pass ➔ " .. host .. ":" .. port .. "@" .. user_dec .. ":" .. pass_dec
- -- Defina o nome do arquivo a ser escrito (hc.txt)
- local hcFileName = "hc.txt"
- -- Caminho completo do arquivo hc.txt
- local hcFilePath = scriptDir .. hcFileName
- -- Abra o arquivo "hc.txt" para escrita
- local hc_file = io.open(hcFilePath, "w")
- if hc_file then
- -- Escreva o conteúdo formatado no arquivo "hc.txt"
- hc_file:write(hc_content)
- hc_file:close()
- -- Exibe conteúdo do arquivo hc.txt como alerta no GameGuardian
- gg.alert("Arquivo aberto " .. hcFileName .. ":\n" .. hc_content)
- -- Copia conteúdo do arquivo hc.txt para a área de transferência
- gg.copyText(hc_content, false)
- print("Arquivo aberto " .. hcFileName .. ":\n" .. hc_content)
- else
- gg.alert("Falha ao abrir o arquivo " .. hcFileName .. " para escrita.")
- end
- else
- gg.alert("Falha ao abrir o arquivo " .. fileName .. " para leitura.")
- end
- end
- -- Função de ordem de execução
- function ordem()
- -- Chama Função hcDump()
- hcDump()
- -- Chama Função hcSSH()
- hcSSH()
- end
- -- Chams Função ordem()
- ordem()
Add Comment
Please, Sign In to add comment