Às vezes, torna-se necessário enviar uma mensagem anônima para o destinatário certo, sem usar o telefone ou quando você possui apenas um computador com acesso à Internet e um console aberto.
Em muitos filmes, há um momento em que um hacker que quebra uma pessoa precisa enviar uma mensagem para seu número para distraí-lo ou assustá-lo. Em tais situações, o mais importante é que, quando a pessoa liga para o número do qual o SMS veio, a tela do seu smartphone não acende e a música começou a tocar. Opa ... situação embaraçosa. Neste tópico, escreveremos um programa em C ++ que permitirá enviar SMS sem usar seu número, cartão SIM e alma.
A palavra "anonimato" implica que quem enviou a mensagem não é realmente reconhecido, mas nem tudo é tão bom. Durante o julgamento, esse fato será esclarecido, de modo que, com piadas particularmente sérias, não irei visitá-lo para testes.
Advertência A tarefa pode ser resolvida de maneiras mais fáceis. Neste tópico, uma das soluções é fornecida na linguagem c ++.
Vamos ao que interessa.
O serviço bytehand é uma solução comercial que permite que você faça correspondências em massa e mensagens únicas. A principal característica do serviço e por que eu o escolhi é uma API disponível em todas as plataformas, que é uma resposta de solicitação HTTP com um sistema de autorização muito simples.
Aqui está o que precisamos:
- Conta Bytehand
- 100 rublos na conta (e o que você quer, o SMS não é gratuito)
- Programa de console C ++
- Bibliotecas Boost.Asio e OpenSSL compiladas para conexões https
- Um certificado criado através do OpenSSL para troca segura de dados com o serviço de bytehand.
Primeiro, registre-se no serviço bytehand. O registro é um e-mail e senha digitados. Isso já é suficiente. Depois disso, sua conta é criada e, ao reabastecer a conta (pelo menos 100 rublos), você já pode enviar mensagens com o cabeçalho SMS-INFO. Para a maioria das operadoras, essa entrada é substituída pelo número da partida. Se desejar, você pode criar seu próprio alias de texto.
Em seguida, entramos na API de recursos. E vemos que, para enviar SMS, você só precisa formar o seguinte pacote de dados:
POST /v2/sms/messages HTTP/1.1 Host: api.bytehand.com Connection: close Content-Length: * Content-Type: application/json;charset=UTF-8 X-Service-Key: ab4db0b982dcd0ba63e44191e5d71ef8 { "sender": "MyShop", "receiver": "+79167654321", "text": "Today only! 20% off for all goods!!" }
Chamo sua atenção para o fato de que a X-Service-Key no cabeçalho http é toda a autorização. Essa chave pode ser visualizada nas configurações do site na seção "segurança".
Eu acho que tudo está claro aqui e você pode começar a escrever um programa de console em c ++
Antes de tudo, apresento a você uma parte do código que, usando o Boost.Asio, estabelece uma conexão com o site usando o protocolo https
O código usa o link para o arquivo de certificado dh2048.pem. Você o substitui pelo seu.
Você também pode ver que aqui o nome de domínio api.bytehand.com é usado como servidor
A seguir, é apresentado um exemplo de como o cabeçalho e o corpo da solicitação http para o servidor são formados.
int main() {
Lembro que você substituiu o campo X-Service-Key por sua chave.
Depois de executar esse código e se tudo correu como deveria, o servidor retorna uma resposta:
Status Code: 200 Content-Type: application/json;charset=UTF-8 Content-Language: en Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache { "result": "created", "count": 1 }
Nesse momento, o dinheiro é enviado à sua conta para o envio de uma mensagem. E a mensagem vai para o destinatário. Quando ele receber, será um número de empresa ou um identificador de texto e é improvável que uma pessoa entenda de quem era essa mensagem.
Aqui está o que aconteceu quando escrevi este programa:
Acabou desajeitadamente, mas o que é. Boa sorte a todos, talvez este tópico tenha ajudado você.
Este foi o meu segundo artigo aqui. Obrigado pela leitura. Boa sorte no desenvolvimento de seus aplicativos.