我正在尝试从智能家居设备读取数据(TP-Link HS110) 这是逆向工程
https://www.softscheck.com/en/reverse-engineering-tp-link-hs110/
所以我必须解密和加密。 我使用以下代码,但我没有得到设备的结果
这是输出
Socket created
Connection established
Message send successfully
Lenght: 0 Buffer:
decrypt:
Message received successfully
这里是我的代码
<?php
function decrypt($string){
$key = 171;
$result = "";
for ($i=0; $i<strlen($string); $i++){
$a = $key ^ ord($i);
$key = ord($i);
$result .= chr($a);
}
return $result;
}
function encrypt($string){
$key = 171;
$result = "\0\0\0\0";
for ($i=0; $i<strlen($string); $i++){
$a = $key ^ ord($i);
$key = $a;
$result .= chr($a);
}
return $result;
}
if(!($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP))){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't create socket: [$errorcode] $errormsg \n");
}
echo "Socket created \n";
//Connect socket to remote server
if(!socket_connect($sock , '192.168.178.77' , 9999)){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not connect: [$errorcode] $errormsg \n");
}
echo "Connection established \n";
$message = encrypt('{"system":{"get_sysinfo":{}}}');
//Send the message to the server
if(!socket_send ($sock , $message , strlen($message) , 0)){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not send data: [$errorcode] $errormsg \n");
}
echo "Message send successfully \n";
//Now receive reply from server
if(socket_recv ( $sock , $buf , 2048 , MSG_WAITALL ) === FALSE){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not receive data: [$errorcode] $errormsg \n");
}
//print the received message
echo "Lenght: " . strlen($buf) . " Buffer:" . $buf;
echo "\ndecrypt: " . decrypt($buf);
echo "\nMessage received successfully \n";
socket_close($sock);
?>
我的代码有什么问题?