Convencionalmente "quebrando" um sistema para um usuário não técnico


86

Por vários motivos fora do escopo do Superusuário, fui encarregado de desativar temporariamente um dos meus próprios sistemas. Eu tenho controle total de administração e possuo este sistema. Está executando o Windows 7 SP1. Quero fazer isso direito - algo crível, negável e artístico. Dei uma olhada nelas , mas a maioria delas não é negável.

Idealmente, eu gostaria de algo que possa disparar em um horário programado e que pareça um erro de hardware - BSODs, reinicializações aleatórias e similares ou problemas de conectividade aleatória. Eu também gostaria de ser sorrateiro e não estar no sistema quando isso acontecer (eu tenho algumas horas para fazer isso funcionar, mas prefiro não estar no sistema quando o inferno começar ). Como eu faria isso? Eu gostaria de ter a aparência de erros aleatórios , muitas vezes suficientes para ser irritantes, em vez de derrubar o sistema. Não preciso que ele seja aprovado por um usuário técnico, só preciso que ele seja quebrado o mais irritantemente possível.

Como eu faria isso?


13
Desative o firewall e deixe os lacaios enlouquecerem!
James

36
para um usuário não técnico, até mesmo um programa VB que exibe uma mensagem dizendo "VÍRUS, desligue o computador e desconecte todos os cabos" funciona bem, eu fiz isso quando era jovem. Professor não estava feliz. Foi muito divertido. Eles tiveram que clicar em OK e, em seguida, disse VÍRUS VÍRUS novamente. E então eles tiveram que clicar em Avançar. Funcionou embora. Eu acho que essas respostas são muito melhores! Parece que as respostas aqui podem até cair em usuários técnicos!
barlop

14
Outro possível efeito desejável é apitar o piezospeaker da placa-mãe.
precisa saber é o seguinte

6
Oh, isso acontece sem mim de qualquer maneira. Além disso, não preciso de segurança no emprego aqui - sua família; p. Pediram-me para encontrar uma solução não técnica para uma disputa familiar mesquinha. Eu disse aos meus pais que não me sinto confortável fazendo isso, é mesquinho e vai aumentar as coisas. I vai estar testando estes em uma máquina virtual como o tempo permitir para o hillarity dele.
Journeyman Geek

3
Acho que o overclock é a melhor aposta, se você tiver a opção de aumentar a velocidade do relógio / diminuir o tempo da ram. Você não corre um risco razoável de danificar qualquer coisa com apenas overclock (ou subestimado). Definitivamente será bem aleatório.
Shamtam

Respostas:


61

A interface da linha de comando do software de criptografia de partição Open Source do DiskCryptor inclui um -bsodparâmetro, o wiki diz que

Apague todas as chaves da memória e gere BSOD

(ênfase minha).

Você pode usar o Windows Task Scheduler para agendar sua execução em um determinado momento e deve gerar um BSOD, conforme desejado. Eu não testei esta solução, pois não estou atualmente no Windows, mas afirma-se que ele funciona nas versões de 32 e 64 bits do Windows 2000, XP, Server 2003, Vista, Server 2008 e 7.

Mas não pare nisso:

Você pode usar esta ferramenta de reinicialização para exibir mensagens personalizadas de aparência enigmática que solicitam uma reinicialização e a executam após X segundos. Defina X como um valor realmente baixo. Defina vários eventos no Agendador de tarefas. Como alternativa, use uma ferramenta de reinicialização que não exibirá mensagem ou a função interna de desligamento .

Por fim, também há o NotMyFault

O Notmyfault é uma ferramenta que você pode usar para travar, travar e causar vazamentos de memória do kernel no seu sistema Windows. É útil para aprender a identificar e diagnosticar problemas de driver de dispositivo e hardware, e você também pode usá-lo para gerar arquivos de despejo de tela azul em sistemas que se comportam mal.


4
Parece funcionar no meu windows 7 box. O fato de ser programável, deixa um despejo e se parece exatamente com um erro de hardware.
Journeyman Geek

3
Cara, isso é incrível. Você pode levar alguém às lágrimas com essas ferramentas.
hijarian

1
Isso seria convincente mesmo para muitos usuários técnicos.
Falcon Momot

20

Um script do AutoHotKey que eu costumava usar durante festas no dormitório para impedir que pessoas bêbadas mexessem no meu PC enquanto o mantinha ligado para música.

a::return
;...
; repeat for other lowercase letters
z::return
A::return
; repeat for other uppercase letters
Z::return
1::return
;...
0::return

f1::return
;...
f12::return

LButton::return
RButton::return
MButton::return
#::return
#r::return
Delete::return
Enter::return
^!Delete::return
^+Esc::return
Space::return
LWin::return
!f4::return
Up::return
Down::return
Left::return
Right::return

;hold appskey and press z and 9 to unlock
;picked those three because they are far away from each other and unlikely to be pressed simultaneously even when buttonmashing
appskey & z::
  If GetKeyState("9","P")
  Suspend
  ExitApp
return

Coloque-o na inicialização automática e o computador não reagirá a nenhuma entrada (todos os botões são remapeados para não fazer nada, tudo o que você pode fazer é mover o mouse). A única maneira de corrigi-lo é reiniciar o Windows no modo de segurança com a inicialização automática desabilitada ou conhecendo a combinação secreta.

Há outra maneira de usar:

f11::blockinput,on
f12::blockinput,off

Mas pode exigir privilégios de administrador (e, portanto, pode ser simplesmente escolhido para não ser executado quando solicitado após uma reinicialização), além de não desabilitar o Ctrl+ Alt+ Del.


Um problema: eles podem iniciar o osk (teclado na tela) a partir das ferramentas de acessibilidade. Se alguém realmente quer atrapalhar o seu PC, pode. Gostaria apenas de criar uma conta de usuário separada para a parte que só tem acesso à pasta de músicas e acesso não administrativo para aplicativos em execução.
CausingUnderflowsEverywhere

18

E o BlueScreen ? Este protetor de tela estava sendo executado uma vez no PC de um colega. O acidente foi tão convincente que reiniciei o PC enquanto ele estava fora. Eu pensei em fazer um favor a ele por não se deixar esperar pelo processo de inicialização :-)

A execução de Notmyfault / crash também deve gerar um BSOD. Certifique-se de configurar o Windows para não reiniciar, para que ele realmente mostre a tela azul.

Esse pedaço de código C ++ executa 8 threads em prioridade em tempo real, portanto, deve causar uma paralisação de 100% da CPU, mesmo nos processadores i7 modernos. Você não pode fazer nada além de pressionar o botão Redefinir.

void WasteTime()
{
    int priority = 15;
    ::SetThreadPriority(::GetCurrentThread(), priority);
    while (true)
    {
    }
}

int _tmain(int argc, _TCHAR* argv[])
{   
    ::SetPriorityClass(::GetCurrentProcess(), 0x100);
    for(int i=0; i<7; i++)
    {
        LPDWORD threadid = 0;
        ::CreateThread(NULL, 64*1024, (LPTHREAD_START_ROUTINE)&WasteTime, NULL, 0, threadid);
    }

    WasteTime();

    return 0;
}

1
O mesmo aconteceu comigo na primeira semana em que usei esse protetor de tela no trabalho :(
Der Hochstapler

2
Mas quando a tela azul SYSINTERNALS_GREAT_SITE aparecer, deve ser óbvio para quase todos.
fNek

1
@fNek sim, a impressão digital do temido malware sysinternals, quem pode consertar isso ?! ;-)
barlop

Oh maldito! você foi o primeiro em prio em tempo real. Mas as prioridades dinâmicas dariam ao usuário a chance de executar o TASKMGR e o CMD e matá-lo. Eu acredito que deve ser combinado com processos fork-bomba e cada um com a abertura exclusivamente uma centena de arquivos aleatórios para esgotar partilha de fechaduras
Arioch 'A

Acabei de duplicar esta resposta, excluindo +1 para você. technet.microsoft.com/pt-br/sysinternals/bb897558.aspx
Jodrell

13

Bem, isso é algo que você não vê frequentemente no SU. Para preparar um BSOD real em um computador, use a kbdhidchave do Registro. O artigo completo em que encontro isso está em http://pcsupport.about.com/od/tipstricks/ht/makebsodxp.htm Observe que você precisa usar Ctrl+ Scroll Lockpara iniciar o BSOD real seguindo essas instruções. Isso não é um problema, se você associar isso à funcionalidade do agendador de tarefas e ao VBScript ou outro script. Usando o VBScript, você pode simular pressionamentos de tecla. Portanto, no momento em que você deseja que tudo aconteça, chame um arquivo VBScript, simule a pressão das teclas Ctrl+ Scroll Locke você terá um BSOD. Além disso, esse BSOD tem "MANUALLY_INITIATED" ou algo do tipo, mas um usuário não técnico provavelmente não notaria isso.

Se você quiser apenas pequenos e irritantes erros de hardware que são irritantes, mas não fatais para o sistema, provavelmente você pode criar scripts com o VBScript para desativar as interfaces de hardware aqui e ali. Eu brinquei pessoalmente com scripts que repetidamente ativam e desativam os bloqueios Num, Cap e Scroll, outro que abre e fecha repetidamente a unidade de CD, outro que não deixa a unidade de CD aberta, inverte o mouse, altera o teclado layout, altera a profundidade das cores, altera a linguagem etc. Esses scripts podem ser encontrados com bastante facilidade na Internet (ou é necessário apenas um entendimento básico do VBScript). Observe que quando esse script é ativado, o host de scripts deve ser encerrado no Gerenciador de tarefas para que os efeitos se desgastem ou você deve fazer logoff / logon novamente ou reiniciar o computador. Prossiga por esta rota com cuidado. Depois de ter todos os seus scripts, programas BSOD ou qualquer outra coisa que você deseja implantar, basta usar a função de agendamento de tarefas incorporada ao Windows para agendar a execução das coisas e, em seguida, apenas sentar e assistir.


3
Ah, eu quero BSODs reais, reinicializações e tal. Sistema Fatal é bom, desde que eu não esteja sentado no sistema quando isso acontecer. Estou fazendo isso em adição a outros bits de maldade, como passar o tráfego da web para um proxy, para que eu possa aplicar algumas formas de tráfego agressivas . A parte complicada aqui é fazer tudo isso acontecer quando estou fora do sistema. Não precisarei consertá-lo até que a charada termine. Eu conserto as coisas, quebrar as coisas é difícil.
Journeyman Geek

Veja minha resposta editada sobre como iniciar manualmente um BSOD real.
Caleb Xu

se algo estranho está sendo executado no TaskManager e pode ser rastreado para causar esses efeitos, pode ser chamado de "negação" que o TopicStarter deseja?
Arioch '

Bem, estamos falando de um usuário não técnico aqui ... então suponho que eles não saberão o que é o Gerenciador de Tarefas.
Caleb Xu

9

A conectividade pode ser feita facilmente com alguns arquivos em lote; um para ipconfig / release e outro para ipconfig / renew em horários pré-determinados, agendados no agendador de tarefas do Windows. Existe até uma caixa de seleção na janela 'Criar tarefa' no canto inferior esquerdo, para ocultar a tarefa!


3
Ou alterar a configuração via linha de comando ... Um DNS server '0.0.0.0'para ir ... petri.co.il/configure_tcp_ip_from_cmd.htm
WernerCD

8

Fácil ... basta excluir C: \ WINDOWS \ SYSTEM32 \. Ele tem o benefício adicional de melhorar a velocidade da sua rede!


8

Apenas por brincadeira:

  • Faça uma 'tela de impressão' da área de trabalho. Em seguida, remova todos os ícones e coloque essa imagem como papel de parede. O único dispositivo que pode ser danificado com isso, será o mouse ...
  • Substitua todos os sons do sistema de um 'Burp.wav'.

Boa sorte


8
Eu fiz isso no trabalho, com pseudo-ícones nomeados como "employee_salary_list.xls" para fazer as pessoas clicarem loucamente.
Carl Witthoft

Essa resposta é mais uma piada prática para efeito de humor do que realmente quebrar / desativar um sistema, preferencialmente relacionado ao hardware.
Aquele cara brasileiro

Obviamente. Mas dar um martelo para usuário receberá o efeito desativado verdadeira fato ....
Caveman

7

O congelamento do sistema geralmente é um comportamento annyoing, especialmente quando é aleatório.

Usando devcon(e Sysinternal psexecpara acessar remotamente, se necessário), você pode fazer coisas como remover os drivers do controlador raiz USB. Isso desativaria inexplicavelmente quaisquer dispositivos de entrada, como mouse e teclado, até a próxima reinicialização. Talvez seja necessário desativar os drivers do trackpad também, se for um laptop.


1
"Isso inexplicavelmente desabilitaria qualquer dispositivo de entrada como mouse e teclado até a próxima reinicialização". Somente se eles não usarem mouse e teclados PS / 2 mais antigos.
Aquele cara brasileiro

Remova esses drivers também. :)
LawrenceC

Oh, todo o nosso equipamento é USB. :)
Journeyman Geek

ps / 2 é legal @ThatBrazilianGuy esse chip permite pressionar Redefinir programaticamente e, na verdade, o Windows e o OS / 2 faziam isso muitas vezes por segundo
Arioch '

ideia legal, eu também pensei nisso. Também lhe dou uma outra idéia: remova o driver do SATA / IDE / SCSI, independentemente do disco do sistema do controlador. A falta de disco do sistema geralmente significa falta de memória virtual (c: \ pagefile.sys é geralmente o único detentor) e falha imediata. Se apenas janelas não diria que o driver é usado e não pode ser interrompido
Arioch 'A

5

Crie um formulário VB.Net em branco com WindowStatedefinido como Maximized e inicie como maximizado.

Em seguida formBorderStyle=None, defina e defina sua cor de fundo como Azul médio.

Defina o seguinte no formulário load

me.TopMost = True    ' makes hover over top of normal windows.
me.ShowIcon = false  ' hide from user
me.ShowInTaskBar = false   ' hide from user
me.windowstate = Maximized ' Fill the screen

Adicione um timer com um intervalo curto com código para trazer o formulário ao topo a cada 100 ms

me.BringToFront

Basicamente, ele criará uma tela em branco azul sem maneira de alternar entre aplicativos (mesmo com Ctrl + Tab)

Programe-o para ser executado via agendador de tarefas ou execute-o no login, mantenha o formulário invisível por um tempo aleatório e faça com que ele seja exibido.

Você também pode adicionar texto ou imagem criativa a ele com facilidade.


Ctrl + Shift + Esc ou Ctrl + Alt + Del e mate-o no Gerenciador de tarefas. Também Alt + F4 e Alt + Espaço / Alt + Dash
Arioch '

Usuários não técnicos raramente sabem o que são. mesmo nesses casos, você pode substituir a operação dentro do aplicativo no manipulador de eventos de keyup no formulário, se realmente quiser se envolver.
precisa saber é o seguinte

1
então apenas (no Windows de 32 bits) execute o CMD e Alt + Enter :-D
Arioch 'The

5

Você pode simplesmente colocar ssh na caixa e fazer praticamente qualquer coisa na linha de comando. Deseja reiniciar o PC? 'shutdown.exe / r'. Tenho certeza que você pode resolver algumas coisas. Uma grande vantagem para mim seria que você pode assistir à distância e improvisar de acordo com o comportamento da (s) sua (s) vítima (s). Super mal, mas ooh muito divertido: D



4

Pode ser muito simples, mas por que não agendar simplesmente "shutdown / r" no Windows Task Scheduler? Usando as opções corretas, você pode forçar a reinicialização sem aviso. Você também pode configurá-lo para iniciar uma hora depois que o usuário se conectar ao sistema local. Você deve conseguir se conectar remotamente a esse computador através do seu Agendador de tarefas para configurá-lo também.


óbvio para ver o motivo. essa linha deve ir a algum lugar para travar ou matar alguns serviços principais do Windows, como LSASS ou "NT Workstation". Sem isso, o Windows realmente relata falha crítica na segurança do sistema e é encerrado. OTOH fazer isso realmente não é fácil ... Esses serviços críticos geralmente são bem protegidos e até o usuário LOCAL_SYSTEM às vezes não é suficiente
Arioch '

3
  • Tela
    • Defina a resolução da tela para a mais baixa possível
    • Ativar o modo de alto contraste
  • Rato
    • Coloque o mouse no modo canhoto (ou vice-versa)
    • Altere a velocidade do ponteiro para muito alta ou muito lenta
    • Altere a velocidade do clique duplo para muito curta (difícil de clicar duas vezes) ou muito longa (deve causar longos atrasos após cada clique, pois o sistema aguarda um segundo clique)
    • Ativar a trava do clique
  • Teclado
    • Ativar teclas adesivas
    • Alterar o layout do teclado (dos EUA para o Reino Unido ou vice-versa é bom: geralmente funcionará conforme o esperado, mas o usuário se divertirá se a senha contiver algum dos símbolos que alternam a posição entre os dois layouts)
  • Área de Trabalho
    • Se você quiser atribuir a culpa a um vírus ou similar, crie uma imagem simples com algumas palavras como "Você tem um vírus" ou similar e defina-a como papel de parede
    • Tire uma captura de tela da área de trabalho e defina-a como papel de parede. Em seguida, mova todos os ícones. Repita algumas vezes. Em seguida, desative "Mostrar ícones da área de trabalho".

Talvez isso não seja tão sutil quanto causar interrupções aleatórias na rede, mas para um usuário não técnico, provavelmente parecerá que o computador está "quebrado". Se você está feliz em tê-lo quebrado pela manhã, em vez de ser acionado em algum momento do dia, isso pode fazer o trabalho.

Aviso: você precisará pensar na ordem em que aplica o, pois eles ficam progressivamente mais difíceis de aplicar a cada alteração. Também levará um tempo para "consertar" o computador posteriormente.


EUA -> Reino Unido só punirá pessoas que foram inteligentes o suficiente para usar símbolos em suas senhas.
Jon

1

Que tal desabilitar o resfriamento da CPU até que ele fique lento para a aceleração ou congele totalmente? O SpeedFan não é de código aberto, mas talvez você consiga encontrar uma ferramenta como essa, tendo suporte para diferentes chips da placa-mãe e sabendo como transformar o ventilador em modo controlado por software e pará-lo?

Além disso, existem ferramentas de overclock, como SetFSB, AMD OverDrive e MSI AfterBurner e ... Basta empurrar sua CPU ou RAM acima dos limites para gerar erros aleatórios.

Outra coisa seria alguns ataques de negação de serviço a alguma exaustão de recursos do Windows. Pense em algum processo invisível, executando threads com prioridade "crítica" em todos os núcleos da CPU em loops infinitos, tornando outros processos drásticos. Combine-o com o conceito de fork-bomb, para que eles não sejam facilmente eliminados do Gerenciador de Tarefas. Além disso, se cada um deles estivesse aberto e bloqueasse cem arquivos aleatórios, seria um bônus. Lembro que o Windows 2000 travou apenas porque um programa com problemas funcionava mantendo os arquivos abertos até que um servidor Windows crítico não pudesse abrir o arquivo necessário

Também me pergunto se o bom e velho chip AT Keyboard ainda é emulado em todas as suas capacidades em PCs modernos, incluindo pressionar programaticamente Reset. Google sobre o i8042 e portas 0x60 e 0x64. Então você teria que executar alguns drivers que permitam o acesso de aplicativos ao hardware, como o instalado pelo SpeedFan ou PowerStrip. Hmmm .... e se esses chips permitirem reprogramar o DMA Controller para fazer uma limpeza aleatória do conteúdo da RAM? Mais cedo ou mais tarde, você destruiria por acaso os dados críticos do sistema operacional. OTOH antes de fazê-lo, você pode danificar alguns buffers de cache, então talvez o sistema operacional danifique o conteúdo do disco rígido

Agora ... se você é um manequim, você pode tentar outro truque: tornar a janela sem área de trabalho / barra de tarefas. Não é nada para um usuário um pouco experiente, mas pode confundir manequins.

  1. você faz cópias do EXPLORER.EXE em seu nome personalizado, parecendo não suspeitar, mas não se assemelha a uma andorinha-do-mar comum, como "shell do explorer", etc.
  2. você faz o Windows executar a nova cópia em vez do explorer.exe - isso pode ser feito pelo parâmetro SHELL = no WIN.INI ou no registro. Google para shells personalizados.
  3. após a reinicialização, você exclui o EXPLORER.EXE antigo (todas as ocorrências) ou substitui-os por CMD.EXE ou algum protetor de tela. O SFC (proteção de arquivos do Windows) tentaria reverter essa alteração, você teria que domar de uma maneira ou de outra. Geralmente, isso pode ser feito alterando também EXPLORER.EXE no cache do WFP
  4. pelo Windows Scheduler, você simplesmente mata esse processo do Explorer renomeado e continua matando-o se ele for reiniciado automaticamente. O usuário não poderá reiniciá-lo manualmente, pois o arquivo EXPLORER.EXE foi substituído e talvez ele não saiba o nome real.

No entanto, para uma pessoa mais ou menos experiente executando o CMD ou o gerenciador de tarefas é suficiente para iniciar qualquer programa de que ele precisaria.


2
Parar o ventilador da CPU não resultaria em danos permanentes ao hardware se feito incorretamente? O OP pediu um período "temporário" e não acho que seria bom gravar / derreter hardware (sei que o hardware será desligado automaticamente em casos extremos, mas às vezes não antes que o dano seja causado).
Caleb Xu

@CalebXu depende do hardware. Minha caixa Pentium MMX funcionou cerca de duas semanas antes de eu perceber que o cooler caiu totalmente da CPU (não apenas a ventoinha, o cooler inteiro). E desde o P4, todos os processadores Intel estão otimizando. Mas geralmente concordo que outros métodos são melhores. Como overclocking + subtensão, que eu acho que pode ser levado ao extremo, o sistema operacional seria BSOD em alguns segundos (OTOH interromperá o hardware após o despejo de RAM ou permanecerá com overclock antes de redefinir manualmente? Play, a subtensão deve ser uma rede de segurança)
Arioch '

Eu vejo. A última vez que meu laptop superaqueceu, ele simplesmente desligou.
Caleb Xu

O laptop da minha mãe morreu. O tubo térmico parou de funcionar sem motivo visível e a CPU e a North Bridge estão em constante controle. Não foi possível encontrar um tubo de substituição: - / Caso contrário, o notebook estava indo muito bem ...
Arioch 'The

A maioria dos sistemas modernos irá acelerar. Eu considerei isso muito a sério até que percebi a pura deselegância disso. Na verdade, eu poderia me dar ao luxo de ter o sistema permanente, mas meh, isso seria um desperdício.
Journeyman Geek

1

Instale o protetor de tela BSOD da winternals :-)

Protetor de tela BlueScreen v3.2

Ou ... solte a placa gráfica para que ela pisque quando bater na mesa, embora eu não seja responsável se isso causar problemas a longo prazo: p


1

Uma solução não-intrusiva muito simples. Tire uma captura de tela da área de trabalho. Torne o protetor de tela. Remova todos os ícones da área de trabalho ... clique clique ... uh o quê?!?


4
pelo menos três pessoas sugeriram isso. Muitas pessoas vivem inteiramente clicando duas vezes nas coisas na área de trabalho? Eu essencialmente nunca faço isso. Se você jogasse esse truque comigo, eu literalmente não notaria por semanas.
Kate Gregory

Eu usei no trabalho, quando as pessoas não conseguiram bloquear seus computadores. Em geral, eles também mantiveram os programas em execução e, é claro, a imagem da área de trabalho desses programas não aceita entrada. Normalmente, eu só precisava fazer isso uma vez por usuário para fazê-los aprender a bloquear seus computadores.
Jenny D


0

Você pode estar procurando algo um pouco mais drástico e automatizado do que isso. Porém, pode ser divertido instalar um servidor VNC (ou outro aplicativo de compartilhamento de área de trabalho remota) na (s) máquina (s) em que você deseja causar estragos. Assuma o controle do mouse ou teclado enquanto eles estão fazendo algo. Existem até clientes VNC para o seu telefone, para que você possa fazer isso enquanto estiver vagando e mexer com o mouse no bolso ou algo assim.

Altere o layout do teclado para DVORAK (enquanto o usuário tiver acesso a algo que não seja um campo de senha, para que eles possam ver que as teclas não são o que deveriam ser.)

Gire a tela com Ctrl+ Shift+ arrow, embora isso não pareça aleatório e tenha que ser feito enquanto você estiver lá.

Mapeie hosts da Web comuns para URLs ruins (ou outros hosts da Web comuns - mapeie o Google para o Bing!) No arquivo de hosts - %systemroot%\system32\drivers\etc\hosts.

Coloque uma conexão de área de trabalho remota com outras máquinas na inicialização. (Consulte Usar parâmetros da linha de comando com a Conexão de área de trabalho remota para criar o comando necessário)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.