decompiling之任何人都可以识别此代码段的编程语言吗

linjiqin 阅读:54 2025-05-04 20:05:19 评论:0

我一直在尝试创建一个 Android 应用程序来使用我手机上的 IR blaster 控制各种设备。作为起点,我想获得另一个应用程序使用的脉冲,即小米的“Mi Remote”应用程序。

我安装了应用程序,并从 Android 上的 /data 目录复制了应用程序的数据。我设法找到了一个 SQLite 数据库,其中包含我的设备的频率和脉冲信息。它被存储为代码片段,如下所示。谁能认出这是什么语言?

if(exts~=nil) then 
timing_on=exts[9]  
timing_off=exts[10]  
bytes1={}   
for i=1,9,1 do bytes1[i]=bytes[i] bytes1[i+9]=bytes[i] end  
bytes1[13]=0x60  
if(((timing_on==0)or(timing_on==nil))and((timing_off==0) or(timing_off==nil)))then return  end 
if(timing_on~=nil)and(timing_on>0) then 
if(timing_on<600) then  
    if(timing_on%60==0) then  
        bytes1[2]=(bytes1[2]&0x0F)+0x80  
        else bytes1[2]=(bytes1[2]&0x0F)+0x90  
            end  
elseif(timing_on>=600)and(timing_on<1200) then  
    if(timing_on%60==0) then 
        bytes1[2]=(bytes[2]&0x0F)+0xA0  
        else bytes1[2]=(bytes1[2]&0x0F)+0xB0   
            end 
elseif(timing_on>=1200) then  
    if(timing_on%60==0) then  
        bytes[2]=(bytes1[2]&0x0F)+0xC0   
        else bytes1[2]=(bytes1[2]&0x0F)+0xD0  
            end  
end 
bytes1[3]=bytes1[3]+math.floor((timing_on\/60)%10)  
bytes1[9]=(((bytes1[1]&0x0F)+(bytes1[2]&0x0F)+(bytes1[3]&0x0F)+(bytes1[4]&0x0F)+(bytes1[6]>>4)+0x0C)<<4)  
bytes1[11]=bytes1[2]  
bytes1[12]=bytes1[3]  
bytes1[15]=(timing_on&0xFF)  
bytes1[16]=((timing_on>>8)&0x0F)  
bytes1[17]=0  
bytes1[18]=(((bytes1[9]>>4)+(bytes1[15]>>4)+(bytes1[16]>>4)+(bytes1[17]>>4)+0x0D)<<4)+0x02  
elseif(timing_off~=nil)and(timing_off>0)then 
    if(timing_off<600) then  
        if(timing_off%60==0) then  
            bytes1[2]=(bytes1[2]&0x0F)+0x80   
            else  
            bytes1[2]=(bytes1[2]&0x0F)+0x90  
            end  
    elseif(timing_off>=600)and(timing_off<1200) then  
        if(timing_off%60==0) then  
            bytes1[2]=(bytes1[2]&0x0F)+0xA0   
            else bytes1[2]=(bytes1[2]&0x0F)+0xB0  
                end  
    elseif(timing_off)>=1200 then  
        if(timing_off%60==0) then  
            bytes1[2]=(bytes1[2]&0x0F)+0xC0  
            else bytes1[2]=(bytes1[2]&0x0F)+0xD0  
                end  
    end 
    bytes1[3]=bytes1[3]+math.floor((timing_off\/60)%10)  
    bytes1[9]=(((bytes1[1]&0x0F)+(bytes1[2]&0x0F)+(bytes1[3]&0x0F)+(bytes1[4]&0x0F)+(bytes1[6]>>4)+0x0C)<<4)  
    bytes1[11]=bytes1[2]  
    bytes1[12]=bytes1[3]  
    bytes1[16]=((timing_off&0x0F)<<4)  
    bytes1[17]=(timing_off>>4)  
    bytes1[15]=0  
    bytes1[18]=(((bytes1[9]>>4)+(bytes1[15]>>4)+(bytes1[16]>>4)+(bytes1[17]>>4)+0x0D)<<4)+0x01  
end 
bytes=bytes1  
end 

请您参考如下方法:

可能是 Lua。它有 elseifnil 以及一个带有 .floor() 函数的数学库。


标签:编程语言
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号