[TUTORIAL] Clonar skylanders (todos los juegos)

1, 2, 3, 4, 58
zantzue
MegaAdicto!!!
1.983 mensajes
desde ago 2008
en Isla Delfino
Editado 130 veces. Última: 23/03/2019 - 23:06:56 por zantzue.
Este tutorial es fácil, divertido y para toda la familia....¡Va a ser que no! Aviso que no es para todo el mundo ya que hay que saber inglés, utilizar líneas de comando, compilar en nuestro ordenador el "fork" del proxmark3 que nos interesa, etc.

He encontrado el algoritmo de cifrado de las claves de las figuras de Skylanders; lo pongo en el spoiler (no hace falta leerlo/entenderlo, tranquilos).
The key A for sector 0 is always the 6-byte (12-character) hexadecimal representation of the integer computed by the multiplication of the three prime numbers 73 and 2017 and 560,381,651

For all other sectors, let a big-endian, most-significant-bit first, 48-bit CRC computation use the ECMA-182 polynomial of 0x42f0e1eba9ea3693, and not be reflected or reversed or have a final register XOR value; this is equivalent to a CRC64-ECMA-182 with left shift, MSB check and remainder trim reduced from 64 to 48 bits

Let the initial value of the CRC48 register be the value of the integer computed by the multiplication of the five prime numbers 2 and 2 and 3 and 1103 and 12,868,356,821

Compute the CRC48 of the 5 bytes encoded by the 10-character hexadecimal concatenation of the UID and the sector number in hexadecimal

The key A for that sector is 6 bytes, represented in hexadecimal as 12 characters: the result of the CRC48 with the hexadecimal bytes' order reversed

Si alguien tiene conocimientos de python, que no es mi caso, puede utilizar el siguiente programa (ver "spoiler") para conseguir las claves de sus figuras:
#!/usr/bin/python

## tnp3xxx.py - Compute a key A
##
## Written in 2016 and 2017 and 2018 by Vitorio Miliano
##
## To the extent possible under law, the author has dedicated all
## copyright and related and neighboring rights to this software to
## the public domain worldwide. This software is distributed without
## any warranty.
##
## You should have received a copy of the CC0 Public Domain
## Dedication along with this software. If not, see
## <http://creativecommons.org/publicdomain/zero/1.0/>.

import binascii, re, struct, sys

uidre = re.compile('^[0-9a-f]{8}$', re.IGNORECASE)
magic_nums = [2, 3, 73, 1103, 2017, 560381651, 12868356821]

# Standard MSB CRC pseudocode e.g. https://en.wikipedia.org/w/index.php?ti ... ianness.29
# CRC64 ECMA-182 e.g. http://stackoverflow.com/a/29241216
def pseudo_crc48(crc, data):
POLY = 0x42f0e1eba9ea3693
MSB = 0x800000000000
TRIM = 0xffffffffffff
for x in data:
crc = crc ^ (x << 40)
for k in range(0, 8):
if crc & MSB:
crc = (crc << 1) ^ POLY
else:
crc = crc << 1
crc = crc & TRIM
return crc

def calc_keya(uid, sector):
if sector == 0:
return format(magic_nums[2] * magic_nums[4] * magic_nums[5], '012x')

if uidre.match(uid) is None:
raise ValueError('invalid UID (four hex bytes)')

if sector < 0 or sector > 15:
raise ValueError('invalid sector (0-15)')

PRE = magic_nums[0] * magic_nums[0] * magic_nums[1] * magic_nums[3] * magic_nums[6]
ints = [ord(a) for a in uid.decode('hex')] + [sector]

key = pseudo_crc48(PRE, ints)

return binascii.hexlify(struct.pack('<Q', key))[0:12]

if __name__ == '__main__':
if len(sys.argv) > 1:
keysa = []
for sector in range(0, 16):
keysa.append(calc_keya(sys.argv[1], sector))
if len(sys.argv) > 2 and sys.argv[2] == '-eml':
print ('0'*20+'\n'+('0'*32+'\n')*3).join(keysa).join([(sys.argv[1]+'0'*24+'\n')+(('0'*32+'\n')*2), '0'*20])
else:
print '\n'.join(keysa)

Intenté hacer yo los cálculos y entender debidamente el algoritmo pero no he llegado a lograrlo. Al final he encontrado otra solución; he comprado un Proxmark3 Easy (54,47€ puesto en casa) y además de utilizarlo para calcular las claves de mis figuras también lo uso para clonarlas (no es posible hacerlo con un teléfono android con NFC así que para poder clonarlas lo habría comprado igualmente). Igual lo encontráis hasta un pelín más barato pero daros cuenta de que el que he comprado yo es el que trae el doble de memoria RAM y permite conectar un power bank. Aviso que viene sin manual ni guía ni nada y que hay que estudiar mucho para lograr ponerlo en marcha. Además, se necesitan chips mifare classic 1K con sector 0 regrabables (magic cards gen1) para poder grabar los clones. Yo pedí las tarjetas aquí pero he encargado otras en formato moneda y cuando las tenga comentaré qué tal van. Edit: van estupendamente.

EL TUTORIAL PROPIAMENTE DICHO COMIENZA AQUÍ:

Poner el proxmark3 en marcha:
Cuando me llegó el proxmark3 seguí esta guía (Windows 10) https://github.com/Proxmark/proxmark3/wiki/Windows. En principio, hay que seguir la guía paso por paso (¡cuidado! no sigáis el apartado "Update Proxmark to the new CDC Serial Interface" ya que no es necesario y es peligroso) y lo puse a funcionar sin demasiados problemas (tardé un poco en hacerlo porque no sabía muy bien cómo) pero luego volví a hacerlo todo desde el principio para usar el "fork" de Iceman (administrador del foro proxmark.org) en lugar del oficial para poder usar un script que nos hace falta en este tutorial. En la guía donde dice 3- Download "ProxSpace-master.zip" from: https://github.com/Gator96100/ProxSpace ... master.zip habría que descargar en realidad el fork de Iceman https://github.com/iceman1001/proxmark3 (metedlo todo en una carpeta llamada "pm3" y seguid con el tutorial). Cuando lleguemos al punto de flashear el bootrom y el firmware un apunte importante para que no cunda el pánico. Tras flashear el bootrom el ordenador no nos detectará el proxmark y parecerá que tenemos un bonito pisapeles con antenas. ¡Tranquilos! Desconectad el proxmark3 del ordenador, mantened pulsado el botón del proxmark3 (no soltarlo hasta que hayamos flasheado debidamente el firmware), conectad el USB al ordenador, mirad en el ordenador qué COM le ha asignado, flashead el firmware y ya podéis dejar de apretar el botón. Esto es algo que seguramente haréis una sola vez pero si compilarais otro "fork" o uno con una versión mayor, decir que habría que volver a flashear el proxmark3 (bootrom y firmware) o podemos tener problemas con él (si el client no corresponde con el firmware/bootrom, nos lo podemos cargar).

Ya tenemos listo para usar el proxmark. Al abrir el "client" veremos algo así si tenemos debidamente instalado el "fork" de Iceman:

pm3 ~$ ./client/proxmark3.exe com9

Proxmark3 RFID instrument


[ CLIENT ]
client: iceman build for RDV40 with flashmem; smartcard;

[ ARM ]
bootrom: iceman// 2018-12-30 00:52:24
      os: iceman// 2018-12-30 00:52:37

[ FPGA ]
LF image built for 2s30vq100 on 2017/10/25 at 19:50:50
HF image built for 2s30vq100 on 2018/ 9/ 3 at 21:40:23

[ Hardware ]
  --= uC: AT91SAM7S512 Rev B
  --= Embedded Processor: ARM7TDMI
  --= Nonvolatile Program Memory Size: 512K bytes, Used: 237342 bytes (45%) Free: 286946 bytes (55%)
  --= Second Nonvolatile Program Memory Size: None
  --= Internal SRAM Size: 64K bytes
  --= Architecture Identifier: AT91SAM7Sxx Series
  --= Nonvolatile Program Memory Type: Embedded Flash Memory

Cómo clonar 300+ skylanders de los primeros 5 juegos usando un script del proxmark3 sin volcados ni claves:
La idea es la siguiente; necesitamos un bloque 0 de una figura skylander. Vale una de cualquier juego independientemente de qué skylander queramos clonar. Para utilizar este método no hace falta tener volcados ni claves. Es el propio script el que se encarga de hacer los cálculos una vez que le decimos lo que queremos pero solamente están disponibles los skylanders de los primeros cinco juegos y son algo más de 300 por lo que no estarán todos en la lista. El proceso es el siguiente:

1- Si ya tenemos un bloque 0 de una figura, pasamos al paso 2. Si no, podemos obtener un bloque 0 válido leyendo una figura propia mediante "hf mf rdsc 0 a 4b0b20107ccb":
pm3 --> hf mf rdbl 0 a 4b0b20107ccb
--block no:0, key type:A, key:4B 0B 20 10 7C CB
isOk:01 data:54 CF 8E 2D 38 81 01 0F C3 85 14 97 5D 60 27 12

Ese sería el sector 0 de mi figura Cynder de Skylanders Giants.

2- Ponemos un chip encima del proxmark3 y le ponemos ese bloque 0. En el ejemplo sería escribiendo "hf mf csetblk 0 54CF8E2D3881010FC38514975D602712":
pm3 --> hf mf csetblk 0 54cf8e2d3881010fc38514975d602712
--block number: 0 data:54 CF 8E 2D 38 81 01 0F C3 85 14 97 5D 60 27 12


3- Ahora tenemos que elegir de la lista qué skylander queremos clonar. Para ver la lista escribimos "script run tnp3clone -l":
pm3 --> script run tnp3clone -l
[+] Executing: tnp3clone.lua, args '-l'

----------------------------------------
----------------------------------------
Type    Sub     Element Game            Name
======================================================
0000    0030    air     regular         Whirlwind
0100    0030    air     regular         Sonic Boom
0200    0030    air     regular         Warnado
0300    0030    air     regular         Lightning Rod
0400    0030    earth   regular         Bash
0500    0030    earth   regular         Terrafin
0600    0030    earth   regular         Dino Rang
0700    0030    earth   regular         Prism Break
0800    0030    fire    regular         Sunburn
0900    0030    fire    regular         Eruptor
0a00    0030    fire    regular         Ignitor
0b00    0030    fire    regular         Flameslinger
0c00    0030    water   regular         Zap
0d00    0030    water   regular         Wham Shell
0e00    0030    water   regular         Gill Grunt
0f00    0030    water   regular         Slam Bam
1000    0030    magic   regular         Spyro
1100    0030    magic   regular         Voodood
1200    0030    magic   regular         Double Trouble
1300    0030    tech    regular         Trigger Happy
1400    0030    tech    regular         Drobot
1500    0030    tech    regular         Drill Sergeant
1600    0030    tech    regular         Boomer
1700    0030    magic   regular         Wrecking Ball
1800    0030    life    regular         Camo
1900    0030    life    regular         Zook
1a00    0030    life    regular         Stealth Elf
1a00    0528    life    swapforce       Ninja Stealth Elf
1b00    0030    life    regular         Stump Smash
1b00    0118    life    regular         Stump Smash
1c00    0030    magic   regular         Dark Spyro
1d00    0030    undead  regular         Hex
1e00    0030    undead  regular         Chop Chop
1f00    0030    undead  regular         Ghost Roaster
2000    0030    undead  regular         Cynder
6400    0030    air     giant           Jet Vac
6500    0030    air     giant           Swarm
6600    0030    earth   giant           Crusher
6700    0030    earth   giant           Flashwing
6800    0030    fire    giant           Hot Head
6900    0030    fire    giant           Hot Dog
6a00    0030    water   giant           Chill
6b00    0030    water   giant           Thumpback
6c00    0030    magic   giant           Pop Fizz
6c00    023c    magic   giant           Love Potion Pop Fizz
6d00    0030    magic   giant           Nin Jini
6e00    0030    tech    giant           Bouncer
6f00    0030    tech    giant           Sprocket
7000    0030    life    giant           Tree Rex
7100    0030    life    giant           Shroomboom
7200    0030    undead  giant           Eye Broawl
7300    0030    undead  giant           Fright Rider
c800    0030            item            Anvil Rain
c900    0030            item            Platinum Treasure Chest
ca00    0030            item            Healing Elixer
cb00    0030            item            Ghost Pirate Swords
cc00    0030            item            Time Twist Hourglass
cd00    0030            item            Sky Iron Shield
ce00    0030            item            Winged Boots
cf00    0030            item            Sparx
d000    0030            item            Cannon
d100    0030            item            Scorpion Striker
d200    0230    magic   trap            Biter's Bane
d200    0830    magic   trap            Sorcerous Skull
d200    0b30    magic   trap            Axe Of Illusion
d200    0e30    magic   trap            Arcane Hourglass
d200    1230    magic   trap            Spell Slapper
d200    1430    magic   trap            Rune Rocket
d300    0130    water   trap            Tidal Tiki
d300    0230    water   trap            Wet Walter
d300    0630    water   trap            Flood Flask
d300    0730    water   trap            Soaking Staff
d300    0b30    water   trap            Aqua Axe
d300    1630    water   trap            Frost Helm
d400    0330    air     trap            Breezy Bird
d400    0630    air     trap            Drafty Decanter
d400    0d30    air     trap            Tempest Timer
d400    1030    air     trap            Cloudy Cobra
d400    1130    air     trap            Storm Warning
d400    1830    air     trap            Cycone Saber
d500    0430    undead  trap            Spirit Sphere
d500    0830    undead  trap            Spectral Skull
d500    0b30    undead  trap            Haunted Hatchet
d500    0c30    undead  trap            Grim Gripper
d500    1030    undead  trap            Spooky Snake
d500    1730    undead  trap            Dream Piercer
d600    0030    tech    trap            tech Totem
d600    0730    tech    trap            Automatic Angel
d600    0930    tech    trap            Factory Flower
d600    0c30    tech    trap            Grabbing Gadget
d600    1630    tech    trap            Makers Mana
d600    1a30    tech    trap            Topsy techy
d700    0530    fire    trap            Eternal Flame
d700    0930    fire    trap            fire Flower
d700    1130    fire    trap            Scorching Stopper
d700    1230    fire    trap            Searing Spinner
d700    1730    fire    trap            Spark Spear
d700    1b30    fire    trap            Blazing Belch
d800    0030    earth   trap            Banded Boulder
d800    0330    earth   trap            Rock Hawk
d800    0a30    earth   trap            Slag Hammer
d800    0e30    earth   trap            Dust Of Time
d800    1330    earth   trap            Spinning Sandstorm
d800    1a30    earth   trap            Rubble Trouble
d900    0330    life    trap            Oak Eagle
d900    0530    life    trap            Emerald Energy
d900    0a30    life    trap            Weed Whacker
d900    1030    life    trap            Seed Serpent
d900    1830    life    trap            Jade Blade
d900    1b30    life    trap            Shrub Shrieker
da00    0030    dark    trap            dark Dagger
da00    1430    dark    trap            Shadow Spider
da00    1a30    dark    trap            Ghastly Grimace
db00    0030    light   trap            Shining Ship
db00    0f30    light   trap            Heavenly Hawk
db00    1b30    light   trap            Beam Scream
dc00    3030    kaos    trap            Kaos trap!
e600    0030    none    item            Hand Of Fate
e700    0030    none    item            Piggy Bank
e800    0030    none    item            Rocket Ram
e900    0030    none    item            Tiki Speaky
2c01    0030    none    location        Dragons Peak
2d01    0030    none    location        Empire Of Ice
2e01    0030    none    location        Pirate Seas
2f01    0030    none    location        darklight Crypt
3001    0030    none    location        Volcanic Vault
3101    0030    none    location        Mirror Of Mystery
3201    0030    none    location        Nightmare Express
3301    0030    light   location        Sunscraper Spire
3401    0030    dark    location        Midnight Museum
9401    0030    earth   legendary       Bash
a001    0030    magic   legendary       Spyro
a301    0030    tech    legendary       Trigger Happy
ae01    0030    undead  legendary       Chop Chop
c201    0030    air     trapmaster      Gusto
c301    0030    air     trapmaster      Thunderbolt
c401    0030    air     regular         Fling Kong
c501    0030    air     regular         Blades
c601    0030    earth   trapmaster      Wallop
c701    0030    earth   trapmaster      Head Rush
c701    0234    earth   trapmaster      Nitro Head Rush
c801    0030    earth   regular         Fist Bump
c901    0030    earth   regular         Rocky Roll
ca01    0030    fire    trapmaster      Wildfire
ca01    0234    fire    trapmaster      Dark Wildfire
cb01    0030    fire    trapmaster      Ka Boom
cc01    0030    fire    regular         Trail Blazer
cd01    0030    fire    regular         Torch
ce01    0030    water   trapmaster      Snap Shot
ce01    0234    water   trapmaster      Dark Snap Shot
6c00    023c    water   trapmaster      Instant Snap Shot
cf01    0030    water   trapmaster      Lob Star
cf01    0234    water   trapmaster      Winterfest Lob Star
d001    0030    water   regular         Flip Wreck
d101    0030    water   regular         Echo
d201    0030    magic   trapmaster      Blastermind
d301    0030    magic   trapmaster      Enigma
d401    0030    magic   regular         Deja Vu
d501    0030    magic   regular         Cobra Cadabra
d601    0030    tech    trapmaster      Jawbreaker
d701    0030    tech    trapmaster      Gearshift
d801    0030    tech    regular         Chopper
d901    0030    tech    regular         Tread Head
da01    0030    life    trapmaster      Bushwhack
db01    0030    life    trapmaster      Tuff Luck
dc01    0030    life    regular         Food Fight
dc01    0612    life    regular         LightCore Food Fight
dd01    0030    life    regular         High Five
de01    0030    undead  trapmaster      Krypt King
de01    0234    undead  trapmaster      Nitro Krypt King
df01    0030    undead  trapmaster      Short Cut
e001    0030    undead  regular         Bat Spin
e101    0030    undead  regular         Funny Bone
e101    0612    undead  regular         LightCore Funny Bone
e201    0030    light   trapmaster      Knight light
e301    0030    light   regular         Spotlight
e401    0030    dark    trapmaster      Knight Mare
e501    0030    dark    regular         Blackout
f601    0030    earth   mini            Bop
f901    0030    earth   mini            Terrabite
fa01    0030    air     mini            Breeze
fc01    0030    air     mini            Pet Vac
fb01    0030    fire    mini            Weeruptor
fd01    0030    fire    mini            Small Fry
fe01    0030    tech    mini            Drobit
0702    0030    tech    mini            Trigger Snappy
0e02    0030    life    mini            Whisper Elf
1c02    0030    life    mini            Barkley
1d02    0030    water   mini            Thumpling
0202    0030    water   mini            Gill Runt
1e02    0030    magic   mini            mini Jini
f701    0030    magic   mini            Spry
f801    0030    undead  mini            Hijinx
1f02    0030    undead  mini            Eye Small
b80b    0030    air     mini            Scratch
b90b    0030    air     SWAPFORCE       Pop Thorn
ba0b    0030    earth   SWAPFORCE       Slobber Tooth
bb0b    0030    earth   SWAPFORCE       Scorp
bc0b    0030    fire    SWAPFORCE       Fryno
bc0b    0138    fire    SWAPFORCE       Hog Wild Fryno
bd0b    0030    fire    SWAPFORCE       Smolderdash
be0b    0030    life    SWAPFORCE       Bumble Blast
bf0b    0030    life    SWAPFORCE       Zoo Lou
c00b    0030    magic   SWAPFORCE       Dune Bug
c10b    0030    magic   SWAPFORCE       Star Strike
c20b    0030    tech    SWAPFORCE       Countdown
c30b    0030    tech    SWAPFORCE       Wind Up
c40b    0030    undead  SWAPFORCE       Roller Brawl
c50b    0030    undead  SWAPFORCE       Grim Creeper
c60b    0030    water   SWAPFORCE       Rip Tide
c70b    0030    water   SWAPFORCE       Punk Shock
630d    0041    DARK    NIGHTFALL       nil
990c    0040    EARTH   LAND~SHARK~TANK nil
9a0c    0040    EARTH   LAND~THUMP~TRUCK        nil
580d    0041    EARTH   SHARK~SHOOTER~TERRAFIN  nil
530d    0041    EARTH   SMASH~HIT       nil
530d    0245    EARTH   STEEL~PLATED~SMASH~HIT  nil
970c    0040    FIRE    BURN~CYCLE      nil
600d    0245    FIRE    DARK~HAMMER~SLAM~BOWSER nil
980c    0244    FIRE    DARK~HOT~STREAK nil
540d    0245    FIRE    DARK~SPITFIRE   nil
600d    0041    FIRE    HAMMER~SLAM~BOWSER      nil
980c    0040    FIRE    HOT~STREAK      nil
980c    0440    FIRE    HOT~STREAK(E3)  nil
980c    1e44    FIRE    GOLDEN~HOT~STREAK       nil
5d0d    0041    FIRE    LAVA~LANCE~ERUPTOR      nil
540d    0041    FIRE    SPITFIRE        nil
5c0d    0041    MAGIC   BIG~BUBBLE~POP~FIZZ     nil
5c0d    0e45    MAGIC   BIRTHDAY~BASH~BIG~BUBBLE~POP~FIZZ       nil
4a0d    0245    MAGIC   POWER~BLUE~SPLAT        nil
a70c    0244    MAGIC   VARIANT~NITRO~SODA~SKIMMER      nil
a70c    0040    MAGIC   SEA~SODA~SKIMMER        nil
4a0d    0041    MAGIC   SPLAT           nil
af0d    0040    KAOS    TROPHY          nil
ad0d    0040    LAND    TROPHY          nil
570d    0245    LIFE    DARK~SUPER~SHOT~STEALTH~ELF     nil
5f0d    0245    LIFE    DARK~TURBO~CHARGE~DONKEY~KONG   nil
640d    0d45    LIFE    EGGCITED~THRILLIPEDE    nil
9c0c    0244    LIFE    SKY~NITRO~STEALTH~STINGER       nil
9c0c    0040    LIFE    STEALTH~STINGER nil
570d    0041    LIFE    SUPER~SHOT~STEALTH~ELF  nil
640d    0041    LIFE    THRILLIPEDE     nil
5f0d    0041    LIFE    TURBO~CHARGE~DONKEY~KONG        nil
a40c    0344    LIGHT   AIR~LEGENDARY~SUN~RUNNER        nil
620d    0041    LIGHT   ASTROBLAST      nil
620d    0345    LIGHT   LEGENDARY~ASTROBLAST    nil
a40c    0040    LIGHT   SUN~RUNNER      nil
ae0d    0040    SEA     TROPHY          nil
ac0d    0040    SKY     TROPHY          nil
a80c    0040    TECH    BARREL~BLASTER  nil
a80c    0244    TECH    DARK~BARREL~BLASTER     nil
560d    0041    TECH    DOUBLE~DARE~TRIGGER~HAPPY       nil
a20c    0040    TECH    GOLD~RUSHER     nil
a20c    0244    TECH    POWER~BLUE~GOLD~RUSHER  nil
490d    0041    TECH    HIGH VOLT       nil
a20c    0244    TECH    LAND~POWER~BLUE~GOLD~RUSHER     nil
a30c    0040    TECH    LAND~SHIELD~STRIKER     nil
560d    0245    TECH    POWER~BLUE~TRIGGER~HAPPY        nil
9b0c    0040    UNDEAD  CRYPT~CRUSHER   nil
480d    0041    UNDEAD  FIESTA          nil
480d    1545    UNDEAD  FRIGHTFUL~FIESTA(Halloween Special)     nil
590d    0041    UNDEAD  ROLLER~BRAWL    nil
590d    0345    UNDEAD  VARIANT~LEGENDARY~ROLLER~BRAWL  nil
950c    0000    UNDEAD  VEHICLE~TOMB~BUGGY      nil
a50c    0244    WATER   DARK~SEA~SHADOW nil
5e0d    0041    WATER   DEEP~DIVE~GILL~GRUNT    nil
9f0c    0040    WATER   DIVE~BOMBER     nil
610d    0041    WATER   DIVE~CLOPS      nil
610d    0e45    WATER   MISSILE~TOW~DIVE~CLOPS  nil
960c    0040    WATER   SEA~REEF~RIPPER nil
a50c    0040    WATER   SEA~SHADOW      nil
9f0c    0244    WATER   SPECIAL~VEHICLE~DIVE~BOMBER     nil
a60c    0040    WATER   SPLATTER~SPLASHER       nil
a60c    0244    WATER   POWER~BLUE~SPLATTER~SPLASHER    nil
d007    0020    air     SWAPFORCE       Boom
e803    0020    air     SWAPFORCE       Jet (Rocket)
d107    0020    air     SWAPFORCE       Free
e903    0020    air     SWAPFORCE       Ranger (Spin)
d207    0020    earth   SWAPFORCE       Rubble
ea03    0020    earth   SWAPFORCE       Rouser (Dig)
d307    0020    earth   SWAPFORCE       Doom
eb03    0020    earth   SWAPFORCE       Stone (Spin)
d407    0020    fire    SWAPFORCE       Blast
ec03    0020    fire    SWAPFORCE       Zone (Rocket)
d507    0020    fire    SWAPFORCE       Fire
ed03    0020    fire    SWAPFORCE       Kraken (Bounce)
d607    0020    life    SWAPFORCE       Stink
ee03    0020    life    SWAPFORCE       Bomb (Sneak)
d707    0020    life    SWAPFORCE       Grilla
ef03    0020    life    SWAPFORCE       Drilla (Dig)
d807    0020    magic   SWAPFORCE       Hoot
f003    0020    magic   SWAPFORCE       Loop (Teleport)
d907    0020    magic   SWAPFORCE       Trap
f103    0020    magic   SWAPFORCE       Shadow (Sneak)
da07    0020    tech    SWAPFORCE       Magna
f203    0020    tech    SWAPFORCE       Charge (Speed)
db07    0020    tech    SWAPFORCE       Spy
f303    0020    tech    SWAPFORCE       Rise (Climb)
dc07    0020    undead  SWAPFORCE       Night
f403    0020    undead  SWAPFORCE       Shift (Teleport)
dd07    0020    undead  SWAPFORCE       Rattle
f503    0020    undead  SWAPFORCE       Shake (Bounce)
de07    0020    water   SWAPFORCE       Freeze
f603    0020    water   SWAPFORCE       Blade (Speed)
df07    0020    water   SWAPFORCE       Wash
f703    0020    water   SWAPFORCE       Buckler (Climb)

[+] Finished

He copiado la lista en un documento de open office para que la veáis mejor.

4- Una vez que hayamos elegido el tipo (-t) y subtipo (-s) de skylander, lo clonamos escribiendo con el comando "script run tnp3clone -t xxxx -s xxxx" sustituyendo "xxxx" por los números de nuestro skylander. Por ejemplo, si queremos clonar a spyro sería "script run tnp3clone -t 1000 -s 0030":
pm3 --> script run tnp3clone -t 1000 -s 0030
[+] Executing: tnp3clone.lua, args '-t 1000 -s 0030'

----------------------------------------
----------------------------------------
[+] Looking up input: Found Spyro - regular (magic)
--wipe card:YES  uid:54 CF 8E 2D
[+] old block 0:  54 CF 8E 2D 38 81 01 0F C3 85 14 97 5D 60 27 12
[+] new block 0:  54 CF 8E 2D 38 81 01 0F C3 85 14 97 5D 60 27 12
[+] old UID:00 00 00 00
[+] new UID:54 CF 8E 2D
--block number: 1 data:10 00 00 00 00 00 00 00 00 00 00 00 00 30 64 53
--block number: 3 data:4B 0B 20 10 7C CB 7F 0F 08 69 00 00 00 00 00 00
--block number: 7 data:F8 B7 B3 2A A6 8E 7F 0F 08 69 00 00 00 00 00 00
--block number:11 data:DE DA 67 79 71 4D 7F 0F 08 69 00 00 00 00 00 00
--block number:15 data:4D EC 8D D0 9A AC 7F 0F 08 69 00 00 00 00 00 00
--block number:19 data:01 36 25 77 34 2B 7F 0F 08 69 00 00 00 00 00 00
--block number:23 data:92 00 CF DE DF CA 7F 0F 08 69 00 00 00 00 00 00
--block number:27 data:B4 6D 1B 8D 08 09 7F 0F 08 69 00 00 00 00 00 00
--block number:31 data:27 5B F1 24 E3 E8 7F 0F 08 69 00 00 00 00 00 00
--block number:35 data:BF EF A0 6B BE E7 7F 0F 08 69 00 00 00 00 00 00
--block number:39 data:2C D9 4A C2 55 06 7F 0F 08 69 00 00 00 00 00 00
--block number:43 data:0A B4 9E 91 82 C5 7F 0F 08 69 00 00 00 00 00 00
--block number:47 data:99 82 74 38 69 24 7F 0F 08 69 00 00 00 00 00 00
--block number:51 data:D5 58 DC 9F C7 A3 7F 0F 08 69 00 00 00 00 00 00
--block number:55 data:46 6E 36 36 2C 42 7F 0F 08 69 00 00 00 00 00 00
--block number:59 data:60 03 E2 65 FB 81 7F 0F 08 69 00 00 00 00 00 00
--block number:63 data:F3 35 08 CC 10 60 7F 0F 08 69 00 00 00 00 00 00
--block number: 3 data:4B 0B 20 10 7C CB 0F 0F 0F 69 00 00 00 00 00 00


5- Y ahora...¡a disfrutar de nuestro skylander clonado! [beer]

Nota: Normalmente este método funciona sin problemas pero también es cierto que alguna vez me ha fallado. Si el juego os dice que la figura está corrupta, fijaos a ver si el script os ha dado algún error cuando estaba escribiendo los bloques (puede quedar "camuflado" entre tanta línea). De ser así, utilizadlo de nuevo. Si no es el caso, pasad al plan B: abrid el archivo .bin (yo lo hago con HxD) del skylander correspondiente en el google drive, editad el bloque 0 del chip escribiendo el del archivo .bin, pasadle el script y luego editad el bloque 1 del chip escribiendo el del archivo .bin; nunca falla.

Cómo clonar 550 skylanders de cualquier juego utilizando volcados incompletos (faltan las claves) de otros usuarios:
En este google drive hay cientos de skylanders de todos los juegos, incluyendo trampas, vehículos, cristales, ítems especiales, etc. pero tal y como están no se pueden usar ya que faltan las claves de los 16 sectores. El proceso para clonar una figura es el siguiente:

1- Nos descargamos el archivo.bin que nos interese, le cambiamos el nombre de tal forma que no tenga espacios y lo colocamos en la carpeta "pm3". Pongamos como ejemplo que nos interesa el achivo "AIR - BLADES - [Legendary]", pues lo podemos renombrar, por ejemplo, "AIR_BLADES_Legendary" (o algo más corto sin barras bajas, si nos da la gana).

2- En el client del proxmark escribimos "script run dumptoemul -i Air_BLADES_Legendary.bin -o Air_BLADES_Legendary.eml" para pasar ese archivo .bin a formato .eml.
pm3 --> script run dumptoemul -i Air_BLADES_Legendary.bin -o Air_BLADES_Legendary.eml
[+] Executing: dumptoemul.lua, args '-i Air_BLADES_Legendary.bin -o Air_BLADES_Legendary.eml'

Wrote an emulator-dump to the file Air_BLADES_Legendary.eml

[+] Finished

3- Ponemos un chip encima del proxmark y grabamos ese archivo escribiendo "hf mf cload Air_BLADES_Legendary"
pm3 --> hf mf cload Air_BLADES_Legendary
................................................................

[+] Loaded 64 blocks from file: Air_BLADES_Legendary.eml

4- Ahora tenemos que calcular las claves para ese volcado que acabamos de grabar. Escribimos "script run tnp3clone -t 1000 -s 0030".
pm3 --> script run tnp3clone -t 1000 -s 0030
[+] Executing: tnp3clone.lua, args '-t 1000 -s 0030'

----------------------------------------
----------------------------------------
[+] Looking up input: Found Spyro - regular (magic)
#db# Auth error
[-] failed reading block with factorydefault key. Trying chinese magic read.
--wipe card:YES  uid:CF D6 E5 FA
[+] old block 0:  CF D6 E5 FA 06 81 01 0F C4 07 00 00 00 00 00 14
[+] new block 0:  CF D6 E5 FA 06 81 01 0F C4 07 00 00 00 00 00 14
[+] old UID:00 00 00 00
[+] new UID:CF D6 E5 FA
--block number: 1 data:10 00 00 00 00 00 00 00 00 00 00 00 00 30 FE 10
--block number: 3 data:4B 0B 20 10 7C CB 7F 0F 08 69 00 00 00 00 00 00
--block number: 7 data:7A 96 47 C8 AB F2 7F 0F 08 69 00 00 00 00 00 00
--block number:11 data:5C FB 93 9B 7C 31 7F 0F 08 69 00 00 00 00 00 00
--block number:15 data:CF CD 79 32 97 D0 7F 0F 08 69 00 00 00 00 00 00
--block number:19 data:83 17 D1 95 39 57 7F 0F 08 69 00 00 00 00 00 00
--block number:23 data:10 21 3B 3C D2 B6 7F 0F 08 69 00 00 00 00 00 00
--block number:27 data:36 4C EF 6F 05 75 7F 0F 08 69 00 00 00 00 00 00
--block number:31 data:A5 7A 05 C6 EE 94 7F 0F 08 69 00 00 00 00 00 00
--block number:35 data:3D CE 54 89 B3 9B 7F 0F 08 69 00 00 00 00 00 00
--block number:39 data:AE F8 BE 20 58 7A 7F 0F 08 69 00 00 00 00 00 00
--block number:43 data:88 95 6A 73 8F B9 7F 0F 08 69 00 00 00 00 00 00
--block number:47 data:1B A3 80 DA 64 58 7F 0F 08 69 00 00 00 00 00 00
--block number:51 data:57 79 28 7D CA DF 7F 0F 08 69 00 00 00 00 00 00
--block number:55 data:C4 4F C2 D4 21 3E 7F 0F 08 69 00 00 00 00 00 00
--block number:59 data:E2 22 16 87 F6 FD 7F 0F 08 69 00 00 00 00 00 00
--block number:63 data:71 14 FC 2E 1D 1C 7F 0F 08 69 00 00 00 00 00 00
--block number: 3 data:4B 0B 20 10 7C CB 0F 0F 0F 69 00 00 00 00 00 00

[+] Finished

Nota: En realidad acabamos de clonar a spyro usando el script tnp3clone pero en el proceso el script calcula y muestra las claves para la UID de ese bloque 0 que es lo que nos interesa.

5- Ya tenemos las claves para ese volcado; son los primeros 6 bytes de los bloques 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59 y 63. En este caso, son las siguientes:

4B 0B 20 10 7C CB
7A 96 47 C8 AB F2
5C FB 93 9B 7C 31
CF CD 79 32 97 D0
83 17 D1 95 39 57
10 21 3B 3C D2 B6
36 4C EF 6F 05 75
A5 7A 05 C6 EE 94
3D CE 54 89 B3 9B
AE F8 BE 20 58 7A
88 95 6A 73 8F B9
1B A3 80 DA 64 58
57 79 28 7D CA DF
C4 4F C2 D4 21 3E
E2 22 16 87 F6 FD
71 14 FC 2E 1D 1C

Ahora abrimos con worpad el archivo .eml que hemos creado antes. En el ejemplo "Air_BLADES_Legendary.eml". Tenemos que copiar esas claves en el archivo en los primeros seis bytes de los bloques correspondientes (sustituir ceros por claves). Podéis copiar las claves de la ventana del proxmark directamente. No tenéis por qué andar tecleando las claves. Puede parecer un proceso largo y pesado pero se puede hacer bastante rápido: para empezar escribimos la primera clave en el bloque 3 (que es el cuarto ya que el primero es el cero) y luego borramos los 6 primeros bytes del resto de las líneas a modificar sustituyendo "000000000007" por "7" mediante la opción "sustituir todos" del wordpad y así nos los quita todos de una vez. Luego copiamos y pegamos las otras 15 claves de una en una y tampoco se tarda tanto. Nos quedarán espacios en blanco que quitaremos de un plumazo sustituyendo " " por "" (sustituir todos). Guardamos y cerramos el archivo.

6- Ya tenemos listo nuestro volcado con la claves introducidas. Ahora volvemos a grabar el chip escribiendo "hf mf cload Air_BLADES_Legendary" igual que en el paso 3.
[code]pm3 --> hf mf cload Air_BLADES_Legendary
................................................................

[+] Loaded 64 blocks from file: Air_BLADES_Legendary.eml[/code]


7- Y ahora...¡a disfrutar de nuestro skylander clonado! [beer]

Clonar figuras de Swap Force
Las figuras de Swap Force constan de dos partes, la inferior y la superior, unidas por un imán. Cada parte tiene su chip, así que hay que clonarlas por separado. Los archivos necesario están en este google drive y en el caso de las figuras de Swap Force en el nombre del archivo se especifica si es la parte inferior (base) o superior (top). Así pues, habría que clonar cada parte en un chip distinto. Yo he hecho la prueba utilizando un bloque 0 y, por lo tanto, UID distinta para cada clon. Los he puesto sobre la base del juego y me los combina sin problemas (una parte inferior con una superior). Un método posible de clonado es el del punto anterior de este tutorial: "Cómo clonar 550 skylanders de cualquier juego utilizando volcados incompletos (faltan las claves) de otros usuarios".

Cómo hacer un volcado de una figura propia:

Con el método de clonado mencionado anteriormente podemos clonar cerca de 550 skylanders pero puede que nos interese clonar una figura que tenemos y no está entre esos volcados o simplemente queremos hacer un volcado propio. Tenemos tres métodos:

Método antiguo válido con figuras de Spyro's Adventure, Giants, Swap Force, Trap Team y Superchargers:
Bien, lo primero que vamos a hacer, aunque no es estrictamente necesario para seguir el tutorial, es leer el sector 0 de nuestra figura (son chips mifare classic con 16 sectores y cuatro bloques por sector). Para ello utilizaremos el comando "hf mf rdbl 0 4b0b20107ccb". Veremos en pantalla algo así:

pm3 --> hf mf rdsc 0 a 4b0b20107ccb
--sector no:0 key type:A key:4B 0B 20 10 7C CB

isOk:01
data   : 1F CA 9E 6F 24 81 01 0F C4 33 00 00 00 00 00 14
data   : 57 0D 00 00 00 00 00 00 00 00 00 00 00 41 CD 8C
data   : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
trailer: 00 00 00 00 00 00 0F 0F 0F 69 00 00 00 00 00 00


Ya tenemos identificada nuestra figura. En el ejemplo, el bloque 0 de la figura es 1F CA 9E 6F 24 81 01 0F C4 33 00 00 00 00 00 14. Ahí está la UID de nuestar figura (los primeros 4 bytes). Ahora lo que vamos a hacer es un volcado de nuestra figura con el comando "script run tnp3clone -p":

pm3 --> script run tnp3dump -p
[+] Executing: tnp3dump.lua, args '-p'

----------------------------------------
----------------------------------------
#db# Debug level: 0
Found tag NXP MIFARE TNP3xxx Activision Game Appliance
Reading blocks > 8,9,10,12,13,14,16,17,18,20,21,36,37,38,40,41,42,44,45,46,48,49,
----------------------------------------
Wrote a BIN dump to:  toydump_2019-01-05_103754-1FCA9E6F.bin
Wrote a EML dump to:  toydump_2019-01-05_103754-1FCA9E6F.eml
----------------------------------------
            ITEM TYPE : nil - SUPER~SHOT~STEALTH~ELF (LIFE)
                  UID : 0x1FCA9E6F
               CARDID : 0x0000000000000000
----------------------------------------

[+] Finished


Dentro de ese volcado están las claves de nuestra figura (la que solamente nosotros tenemos; no el modelo) y su contenido. Ahora vamos a crear un clon en una magic card. Ponemos la tarjeta/chip sobre el proxmak y utilizamos el comando "hf mf cload file" poniendo en lugar de "file" el nombre del archivo creado en el paso anterior:

pm3 --> hf mf cload toydump_2019-01-05_103754-1FCA9E6F
................................................................

[+] Loaded 64 blocks from file: toydump_2019-01-05_103754-1FCA9E6F.eml


Ya tenemos un clon pero no hemos acabado. Ese clon tiene el sector 0 correcto (el que hemos leído antes) pero no pasa lo mismo con el resto de sectores. Tras crear el clon intuyo que no es uno "virgen" sino que en ciertos bloques hay algún tipo de información guardada por haber sido ya utilizado el original y al utilizarlo es posible que nos dé error. Tenemos dos opciones. Lo más práctico para poder utilizar nuestro clon es ponerlo sobre la base del juego y cuando nos proponga restaurar la figura (mi juego Superchargers me da la opción), hacerlo. Otra opción válida es poner a cero los bloques 0, 1 y 2 de todos los sectores salvo el sector 0 (¡dejad el sector 0 como está!). Es decir, serían los bloques 4, 5, 6, 8, 9, 10,12, 13, 14, 16, 17, 18, 20, 21, 22, 24, 25, 26, 28, 29, 30, 32, 33, 34, 36, 37, 38, 40, 41, 42, 44, 45, 46, 48, 49, 50, 52, 53, 54, 56, 57, 58, 60, 61, 62. Realmente no hace falta ponerlos todos a cero sino asegurarnos de que están a cero y si no, cambiarlos. Por ejemplo, leemos el sector 1 de nuestro clon:

pm3 --> hf mf cgetsc 1

  # | data    |  Sector | 01/ 0x01
----+------------------------------------------------
  4 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  5 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  6 | 80 28 F6 7E 68 00 BD 00 00 00 00 00 00 00 00 00
  7 | CA FA D3 FB E1 E1 7F 0F 08 69 00 00 00 00 00 00

Ahí vemos que el bloque 6 no está a cero (es 7 es normal que no lo esté). Pues lo ponemos a cero tal que así (son 16 bytes; 32 ceros):

pm3 --> hf mf csetblk 6 00000000000000000000000000000000
--block number: 6 data:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


No hace falta verificarlo pero podéis hacerlo volviendo a leer el sector

pm3 --> hf mf cgetsc 1

  # | data    |  Sector | 01/ 0x01
----+------------------------------------------------
  4 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  5 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  6 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  7 | CA FA D3 FB E1 E1 7F 0F 08 69 00 00 00 00 00 00

Hacéis lo mismo para el resto de sectores (el último es el 15), poniendo a cero todos los bloques que no sean el cuarto bloque (en realidad, el bloque 3 por ser el primero el cero) de ese sector. Lleva un ratillo (recordad que con el cursor podemos utilizar y/o editar los comandos utilizados previamente) pero tras ello el juego nos dejará utilizar el clon sin tener que restaurarlo. No creo que el editar a cero y restaurar sean equivalentes puesto que tras restaurar hay sectores que no están a cero pero el caso es que ambos métodos me funcionan en distintas partidas y consolas.

En las últimas figuras Activision ha incluido "checksums" en algunos bloques por lo que este método no funciona con figuras de Imaginators.

Y ya por último, ¡a disfrutar de nuestra figura clonada!

Nuevo método que sirve con figuras de todos los juegos, Imaginators inclusive:
Empezamos por leer el sector 0 de nuestra figura original, Ponemos la figura sobre el proxmark3 y usamos el comando "hf mf rdsc 0 a 4b0b20107ccb".
pm3 --> hf mf rdsc 0 a 4b0b20107ccb
--sector no:0 key type:A key:4B 0B 20 10 7C CB

isOk:01
data   : 3F 8F C1 9B EA 81 01 0F C4 25 00 00 00 00 00 15
data   : 65 02 00 00 00 00 00 00 00 00 00 00 00 50 B1 1F
data   : D8 D0 5A E3 8C EC 54 E8 B6 3E 74 79 1E B4 CC EE
trailer: 00 00 00 00 00 00 0F 0F 0F 69 00 00 00 00 00 51


Ahí vemos los bloques 0-3. Quitamos la figura del proxmark3 y ponemos una magic card gen 1a encima. Vamos a ponerle el bloque 0 de nuestra figura original. Utilizando la información del ejemplo sería utilizando el comando "hf mf csetblk 0 3F8FC19BEA81010FC425000000000015":
pm3 --> hf mf csetblk 0 3f8fc19bea81010fc425000000000015
--block number: 0 data:3F 8F C1 9B EA 81 01 0F C4 25 00 00 00 00 00 15


Ahora en el proxmark3 vamos a utilizar un script del fork de Iceman para averiguar las 15 claves de los sectores 1-15. El script se llama "tnp3clone" y está en la ruta ProxSpace/pm3/client/scripts. En el client del proxmark escribimos "script run tnp3clone -t 1000 -s 0030":
pm3 --> script run tnp3clone -t 1000 -s 0030
[+] Executing: tnp3clone.lua, args '-t 1000 -s 0030'

----------------------------------------
----------------------------------------
Looking up input: Found Spyro - regular (magic)
--wipe card:YES  uid:3F 8F C1 9B
[+] old block 0:  3F 8F C1 9B EA 81 01 0F C4 25 00 00 00 00 00 15
[+] new block 0:  3F 8F C1 9B EA 08 04 00 C4 25 00 00 00 00 00 15
[+] old UID:00 00 00 00
[+] new UID:3F 8F C1 9B
--block number: 1 data:10 00 00 00 00 00 00 00 00 00 00 00 00 30 92 0F
--block number: 3 data:4B 0B 20 10 7C CB 7F 0F 08 69 00 00 00 00 00 00
--block number: 7 data:30 F8 9D 26 8E 72 7F 0F 08 69 00 00 00 00 00 00
--block number:11 data:16 95 49 75 59 B1 7F 0F 08 69 00 00 00 00 00 00
--block number:15 data:85 A3 A3 DC B2 50 7F 0F 08 69 00 00 00 00 00 00
--block number:19 data:C9 79 0B 7B 1C D7 7F 0F 08 69 00 00 00 00 00 00
--block number:23 data:5A 4F E1 D2 F7 36 7F 0F 08 69 00 00 00 00 00 00
--block number:27 data:7C 22 35 81 20 F5 7F 0F 08 69 00 00 00 00 00 00
--block number:31 data:EF 14 DF 28 CB 14 7F 0F 08 69 00 00 00 00 00 00
--block number:35 data:77 A0 8E 67 96 1B 7F 0F 08 69 00 00 00 00 00 00
--block number:39 data:E4 96 64 CE 7D FA 7F 0F 08 69 00 00 00 00 00 00
--block number:43 data:C2 FB B0 9D AA 39 7F 0F 08 69 00 00 00 00 00 00
--block number:47 data:51 CD 5A 34 41 D8 7F 0F 08 69 00 00 00 00 00 00
--block number:51 data:1D 17 F2 93 EF 5F 7F 0F 08 69 00 00 00 00 00 00
--block number:55 data:8E 21 18 3A 04 BE 7F 0F 08 69 00 00 00 00 00 00
--block number:59 data:A8 4C CC 69 D3 7D 7F 0F 08 69 00 00 00 00 00 00
--block number:63 data:3B 7A 26 C0 38 9C 7F 0F 08 69 00 00 00 00 00 00

Esas claves solamente valen para la esa UID (la de la figura que solamente nosotros tenemos) así que no las voy a ocultar. Las claves son los 6 primeros bytes de todas las líneas salvo la que dice "block number :1 data". Esas claves tenemos que pegarlas en un documento de worpad para luego generar un diccionario. Yo lo que hago es crear uno para cada tipo de juego. Es decir, esa figura pertenece a Imaginators. Pues abro un documento de worpad llamado "Imaginators" y pego las claves:

4b0b20107ccb
30F89D268E72
1695497559B1
85A3A3DCB250
C9790B7B1CD7
5A4FE1D2F736
7C22358120F5
EF14DF28CB14
77A08E67961B
E49664CE7DFA
C2FBB09DAA39
51CD5A3441D8
1D17F293EF5F
8E21183A04BE
A84CCC69D37D
3B7A26C0389C

Ahora guardamos el archivo como "Imaginators.dic" (¡cuidado! ha de ser un archivo .dic y no un archivo .txt; no guardéis algo como "Imaginators.dic.txt") y lo guardamos en la ruta ProxSpace/pm3/. Comprobamos que las hemos copiado bien usando nuestra figura (ponedla encima del proxmark3) con el comando “hf mf chk *1 a d Imaginators.dic” (la columna izquierda ha de estar completa; ver más abajo). Creará un archivo.bin con las claves de nuestra figura. En el ejemplo el archivo es “hf-mf-3F8FC19B-key.bin”:
pm3 --> hf mf chk *1 a d Imaginators.dic
[+] Loaded 46 keys from Imaginators.dic
................
Time in checkkeys: 9 seconds

testing to read key B...
Reading block 3
Data:00 00 00 00 00 51
Reading block 7
Reading block 11
Reading block 15
Reading block 19
Reading block 23
Reading block 27
Reading block 31
Reading block 35
Reading block 39
Reading block 43
Reading block 47
Reading block 51
Reading block 55
Reading block 59
Reading block 63
|---|----------------|---|----------------|---|
|sec|key A           |res|key B           |res|
|---|----------------|---|----------------|---|
|000|  4b0b20107ccb  | 1 |  000000000051  | 1 |
|001|  30f89d268e72  | 1 |  ------------  | 0 |
|002|  1695497559b1  | 1 |  ------------  | 0 |
|003|  85a3a3dcb250  | 1 |  ------------  | 0 |
|004|  c9790b7b1cd7  | 1 |  ------------  | 0 |
|005|  5a4fe1d2f736  | 1 |  ------------  | 0 |
|006|  7c22358120f5  | 1 |  ------------  | 0 |
|007|  ef14df28cb14  | 1 |  ------------  | 0 |
|008|  77a08e67961b  | 1 |  ------------  | 0 |
|009|  e49664ce7dfa  | 1 |  ------------  | 0 |
|010|  c2fbb09daa39  | 1 |  ------------  | 0 |
|011|  51cd5a3441d8  | 1 |  ------------  | 0 |
|012|  1d17f293ef5f  | 1 |  ------------  | 0 |
|013|  8e21183a04be  | 1 |  ------------  | 0 |
|014|  a84ccc69d37d  | 1 |  ------------  | 0 |
|015|  3b7a26c0389c  | 1 |  ------------  | 0 |
|---|----------------|---|----------------|---|
Printing keys to binary file hf-mf-3F8FC19B-key.bin...
Found keys have been dumped to file hf-mf-3F8FC19B-key.bin. 0xffffffffffff has been inserted for unknown keys.


Utilizamos “hf mf dump” para hacer un volcado tipo .bin. Siguiendo con el ejemplo, el archivo que nos da es “hf-mf-3F8FC19B-data.bin”:
pm3 --> hf mf dump
|-----------------------------------------|
|------ Reading sector access bits...-----|
|-----------------------------------------|
|-----------------------------------------|
|----- Dumping all blocks to file... -----|
|-----------------------------------------|
[+] successfully read block  0 of sector  0.
[+] successfully read block  1 of sector  0.
[+] successfully read block  2 of sector  0.
[+] successfully read block  3 of sector  0.
[+] successfully read block  0 of sector  1.
[+] successfully read block  1 of sector  1.
[+] successfully read block  2 of sector  1.
[+] successfully read block  3 of sector  1.
[+] successfully read block  0 of sector  2.
[+] successfully read block  1 of sector  2.
[+] successfully read block  2 of sector  2.
[+] successfully read block  3 of sector  2.
[+] successfully read block  0 of sector  3.
[+] successfully read block  1 of sector  3.
[+] successfully read block  2 of sector  3.
[+] successfully read block  3 of sector  3.
[+] successfully read block  0 of sector  4.
[+] successfully read block  1 of sector  4.
[+] successfully read block  2 of sector  4.
[+] successfully read block  3 of sector  4.
[+] successfully read block  0 of sector  5.
[+] successfully read block  1 of sector  5.
[+] successfully read block  2 of sector  5.
[+] successfully read block  3 of sector  5.
[+] successfully read block  0 of sector  6.
[+] successfully read block  1 of sector  6.
[+] successfully read block  2 of sector  6.
[+] successfully read block  3 of sector  6.
[+] successfully read block  0 of sector  7.
[+] successfully read block  1 of sector  7.
[+] successfully read block  2 of sector  7.
[+] successfully read block  3 of sector  7.
[+] successfully read block  0 of sector  8.
[+] successfully read block  1 of sector  8.
[+] successfully read block  2 of sector  8.
[+] successfully read block  3 of sector  8.
[+] successfully read block  0 of sector  9.
[+] successfully read block  1 of sector  9.
[+] successfully read block  2 of sector  9.
[+] successfully read block  3 of sector  9.
[+] successfully read block  0 of sector 10.
[+] successfully read block  1 of sector 10.
[+] successfully read block  2 of sector 10.
[+] successfully read block  3 of sector 10.
[+] successfully read block  0 of sector 11.
[+] successfully read block  1 of sector 11.
[+] successfully read block  2 of sector 11.
[+] successfully read block  3 of sector 11.
[+] successfully read block  0 of sector 12.
[+] successfully read block  1 of sector 12.
[+] successfully read block  2 of sector 12.
[+] successfully read block  3 of sector 12.
[+] successfully read block  0 of sector 13.
[+] successfully read block  1 of sector 13.
[+] successfully read block  2 of sector 13.
[+] successfully read block  3 of sector 13.
[+] successfully read block  0 of sector 14.
[+] successfully read block  1 of sector 14.
[+] successfully read block  2 of sector 14.
[+] successfully read block  3 of sector 14.
[+] successfully read block  0 of sector 15.
[+] successfully read block  1 of sector 15.
[+] successfully read block  2 of sector 15.
[+] successfully read block  3 of sector 15.
[+] dumped 64 blocks (1024 bytes) to file hf-mf-3F8FC19B-data.bin


Ahora pasamos ese archivo .bin a formato .eml mediante el comando "script run dumptoemul". -i significa inpunt y -o es output. En el ejemplo el inpunt es hf-mf-3F8FC19B-data.bin y al output lo podemos llamar como queramos; yo le llamaré Golden_Queen (no se pueden dejar espacios en el nombre):
pm3 --> script run dumptoemul -i hf-mf-3F8FC19B-data.bin -o Golden_Queen.eml
[+] Executing: dumptoemul.lua, args '-i hf-mf-3F8FC19B-data.bin -o Golden_Queen.eml'

Wrote an emulator-dump to the file Golden_Queen.eml

[+] Finished

Estamos acabando. Quitamos la figura original de encima del proxmark3 y ponemos la magic card de antes. Hacemos un clon mediante "hf mf cload Golden_Queen" (sustituid Golden_Queen por el nombre de vuestro volcado .eml):
pm3 --> hf mf cload Golden_Queen
................................................................

[+] Loaded 64 blocks from file: Golden_Queen.eml


Y ya por último...¡A disfrutra de nuestra figura clonada! [beer]

Método simple utilizando la aplicación Skydumper (en este método los volcados son sin claves):
Necesitamos el programa para windows Skydumper, una base con cable usb, un PC windows y la figural original a clonar. Tenéis un video ilustrativo del proceso aquí (es de lo más sencillo):
https://www.youtube.com/watch?v=3WROrYrr1ho
Hacemos un volcado con "Skydumper.exe -o SkylanderName.bin" (ver video). No tiene más misterio. Si luego quisiéramos usar ese volcado para grabar un chip, tendríamos que calcular las claves y hacer un clon al igual que en el punto "Cómo clonar 550 skylanders de cualquier juego utilizando volcados incompletos (faltan las claves) de otros usuarios" de este tutorial.

Cómo resetear un cristal de Imaginators:
Necesitamos el programa para windows Skydumper, una base con cable usb, un PC windows y el cristal original a resetear. Tenéis un video ilustrativo del proceso aquí (es de lo más sencillo):
https://www.youtube.com/watch?v=3WROrYrr1ho
Hacemos un volcado con "Skydumper.exe -o SkylanderName.bin" (ver video) y luego se resetea con "Skydumper.exe -i SkylanderName.bin -r". No tiene más misterio.

Si luego nos interesa crear un volcado de ese cristal original reseteado, tendríamos que seguir la parte del tutorial "cómo hacer un volcado de una figura propia". Si el cristal (o figura) reseteado no es original sino un clon (magic tag), bastaría con usar el comando "csave 1 o" en el proxmark3 poniendo detras de la letra o el nombre que le queremos dar al archivo (en el siguiente ejemplo llamo "reset" al archivo):
pm3 --> hf mf csave 1 o reset
[+] Saving magic mifare 1K
................................................................

[+] Saved 64 blocks to file: reset.eml
[+] Saved 64 blocks to file: reset.bin

Poner las estadísticas al máximo mediante Skylanders GUI Tool (solamente los primeros juegos)
Nos bajamos la aplicación Skylander GUI Tool de aquí. Ésa es la versión 3.0. Desconozco si existen versiones posteriores pero si encontrase una, actualizaría el enlace. El uso de la aplicación es muy sencillo. Ponemos un clon creado con el proxmark3 sobre la base del juego conectada al ordenador y, al hacerlo, la base lo lee automaticamente sin necesidad de pulsar nada. Luego, simplemente:

1- Pulsamos el botón "Level UP" y pone todas las estadísticas al máximo.
2- Vamos a la pestaña "Portal" y elegimos "Write Figure".

¡Y ya está! Nustra figura tiene el nivel y todas las estadísticas al máximo.
Imagen

Un par de apuntes; también se puede hacer con figuras originales pero en tal caso recomiendo hacer primero una copia de seguridad (pestaña "File"==>"Save Figure") por lo que pudiera pasar. La aplicación es del año 2013 por lo que no tiene todas las figuras en la base de datos. He subido correctamente a nivel 20 53 clones de Spyro's Adventure y Giants y solamente no lo he conseguido con 8. Aún no he hecho la prueba con figuras de Swap Force ni Trap Team pero adelanto que no reconoce las de Superchargers e Imaginators.

Un apunte; me consta que se puede utilizar un acr122u para hacer clones. Se pueden utilizar para ello los archivos del google drive del método "Cómo clonar 550 skylanders de cualquier juego utilizando volcados incompletos (faltan las claves) de otros usuarios" pero habría que calcular las claves. Conozco a un usuario de NFC-bank de Francia que usa el programa "tnp3xxx.py" (en Lynux, creo) para calcular las claves a partir de la UID. Ese usuario me pidió ayuda porque no sabía qué hacer con ellas; había que ponerlas en el volcado en los 6 primeros bytes de las líneas correspondientes. Una vez hecho esto, puede clonar skylanders sin problema. Y como nota adicional, decir que los archivos .bin que genera el proxmark3 al hacer volcados tal cual están también valen para hacer clones con un acr122u (le pasé alguno a ese usuario y funcionó). No voy a hacer un tutorial al respecto porque ni tengo un acr122u ni puedo en realidad calcular claves mediante el programa tnp3xxx.py ya que ni controlo Python, ni Lynux ni nada que se le parezca.
zantzue
MegaAdicto!!!
1.983 mensajes
desde ago 2008
en Isla Delfino
Editado 1 vez. Última: 5/01/2019 - 14:34:10 por zantzue.
Hilo actualizado con un tutorial :D.

Por cierto, este es mi mensaje 1943 en EOL.
ser18534
Adicto
200 mensajes
desde nov 2013
en Bionis
zantzue escribió:Hilo actualizado con un tutorial :D.

Por cierto, este es mi mensaje 1943 en EOL.


Gran trabajo Zantzue !!!

Las fuentes de donde sacaste el algoritmo de cifrado, ¿se pueden saber?
zantzue
MegaAdicto!!!
1.983 mensajes
desde ago 2008
en Isla Delfino
El algoritmo lo encontré aquí pero al final he utilizado el script tnp3dump que viene dentro del "fork" de Iceman que calcula las claves a partir de la UID de nuestra figura.
Tito_CO
Maese Musicalis
5.684 mensajes
desde dic 2003
en Musicolandia
Finalmente te has pasado unas Navidades muy entretenidas .... [plas] [plas]

Gracias por el curro y por las explicaciones .... aunque no entiendo ni la mitad de las palabras que usas [qmparto] [qmparto]

Un saludo [beer]
zantzue
MegaAdicto!!!
1.983 mensajes
desde ago 2008
en Isla Delfino
Editado 1 vez. Última: 7/01/2019 - 18:03:29 por zantzue.
¡Ya te digo! De todo menos aburrirme he hecho. Al final, no es tan complicado. Lo jodido es que la información sobre clonar las figuras no está recopilada ni es pública en ninguna parte, el aparato viene sin manual, en el foro de proxmark te sueltan la información con cuentagotas...¡si es que te responden! En ese foro hay un hilo cerrado sobre las figuras pero muchas veces son muy crípticos y comparten información por privado. Al final he atado cabos mirando lo que hace el script, mirando mis volcados y otros volcados que encontré por ahí. Si te animas a hacerte con un proxmark3, te podría ayudar con las figuras de Skylanders (con las de DI sigo en la pelea).
Tito_CO
Maese Musicalis
5.684 mensajes
desde dic 2003
en Musicolandia
zantzue escribió:Si te animas a hacerte con un proxmark3, te podría ayudar con las figuras de Skylanders (con las de DI sigo en la pelea).


Te lo agradezco pero ni recuerdo la última vez que mi hijo quiso jugar a ese juego, y a mi no me va, con lo que de momento creo que no voy a invertir dinero en él.

Un saludo [beer]
zantzue
MegaAdicto!!!
1.983 mensajes
desde ago 2008
en Isla Delfino
Editado 2 veces. Última: 9/01/2019 - 01:03:10 por zantzue.
¡Ello que te ahorras! Hoy me han llegado los juegos Swap Force y Trap Team (los he conseguigo a 5€ cada uno, con base, en muy buen estado y con puntos del Club Nintendo sin rascar), he probado varios clones compatibles con esos juegos y me los pilla sin problema :D
Tito_CO
Maese Musicalis
5.684 mensajes
desde dic 2003
en Musicolandia
¿En el Trap Team cómo clonas las trampas para atrapar a los villanos? (mera curiosidad)

Lo digo por la forma que tienen que no es un círculo como los personajes
zantzue
MegaAdicto!!!
1.983 mensajes
desde ago 2008
en Isla Delfino
@Tito_CO
El proceso de clonado es el mismo. Hice la prueba con el juego Superchargers que también tiene agujero para meter las trampas y lo detectó. Es decir, puse el clon (tamaño tarjeta de crédito) sobre el agujero y el juego me decía que tenía equipada una trampa en el vehículo. Hoy tengo un día ocupado pero mañana a más tardar hago la prueba con el juego Trap Team aprovechando que acabo de conseguir una copia del juego y la base correspondiente.
1, 2, 3, 4, 58