This commit is contained in:
iceman1001 2025-09-02 16:16:29 +02:00
parent f9b3bff4b7
commit 02b4d61796
8 changed files with 32 additions and 32 deletions

View file

@ -2,7 +2,7 @@
Simple script to program DIY kyber crystals
works on real kyber crystals and EM4305 2.12x12mm chips
simply run the program and select a profile via a number
issues
if you are getting errors when trying to read or write a chip
run the cmd "lf tune" with no chip on the device, then move the chip over the coils till you see the lowest voltage. try different angles and in the center and or the edge of the antenna ring.
@ -10,7 +10,7 @@
if thats still not working run "lf tune" again and put the chip in the best position like before
the total voltage may be too high to reduce it slowly lower tin foil over the antenna and watch the voltage.
the foil should be a bit bigger than the coil exact size does not matter.
data pulled from here
https://docs.google.com/spreadsheets/d/13P_GE6tNYpGvoVUTEQvA3SQzMqpZ-SoiWaTNoJoTV9Q/edit?usp=sharing
--]]
@ -663,12 +663,12 @@ function get_profile_data(profile_name)
[9] = "010D0000"
}
}
-- When called without arguments, return the whole table
if not profile_name then
return profiles
end
-- Otherwise return the specific profile or wipe chip
return profiles[profile_name] or profiles["wipe chip"]
end
@ -676,7 +676,7 @@ end
function get_profile_names()
-- Get the complete profiles table from get_profile_data
local all_profiles = get_profile_data()
local names = {}
for name, _ in pairs(all_profiles) do
table.insert(names, name)
@ -687,16 +687,16 @@ end
function select_profile()
local profile_names = get_profile_names()
print("\nAvailable profiles:")
for i, name in ipairs(profile_names) do
print(string.format("%d. %s", i, name))
end
while true do
io.write("\nSelect profile (1-" .. #profile_names .. "): ")
local choice = tonumber(io.read())
if choice and choice >= 1 and choice <= #profile_names then
return profile_names[choice]
else
@ -707,40 +707,40 @@ end
function main()
print("\n[=== kyber crystal programmer ===]")
-- Get profile from command line argument or prompt user
local profile_name = args and args[1]
if not profile_name then
--print("\nNo profile specified as argument.")
profile_name = select_profile()
end
local data_to_write = get_profile_data(profile_name)
print("\n[+] Using profile: " .. profile_name)
-- Display what will be written
print("\n[+] Data to be written:")
for addr, data in pairs(data_to_write) do
print(string.format("Address %d: %s", addr, data))
end
-- Step 1: Wipe the tag
print("\n[+] Wiping tag...")
send_command("lf em 4x05 wipe --4305")
-- Step 2: Write data
print("\n[+] Writing data...")
for addr, data in pairs(data_to_write) do
send_command("lf em 4x05 write -a " .. addr .. " -d " .. data)
utils.Sleep(0.5)
end
-- Step 3: Read back and display data for verification
print("\n[+] Verifying writes by reading back data...")
for addr, expected_data in pairs(data_to_write) do
local output = send_command("lf em 4x05 read -a " .. addr)
end
print("\n[+] Read complete. Review output above.")
end

View file

@ -10,7 +10,7 @@ For more info, check the comments in the code
]]
example = [[
--
script run lf_awid_bulkclone.lua -f 1 -b 1000
script run lf_awid_bulkclone.lua -f 1 -b 1000
]]
usage = [[
script run lf_awid_bulkclone.lua -f facility -b base_id_num
@ -91,7 +91,7 @@ local function main(args)
end
end
if o == 'b' then
if isempty(a) then
if isempty(a) then
print('You did not supply a starting card number, using 59615')
cn = 59615
else
@ -105,18 +105,18 @@ local function main(args)
print("Session Start: " .. sessionStart)
print("Facility Code,Card Number")
while true do
print(string.format("Preparing to Write: Facility Code %d, Card Number %d", fc, cn))
local command = string.format("lf awid clone --fmt 26 --fc %d --cn %d", fc, cn)
core.console(command)
print(string.format("%d,%d", fc, cn))
print("Press Enter to continue with the next card number or type 'q' and press Enter to quit.")
local user_input = io.read()
if user_input:lower() == 'q' then
break
else

View file

@ -14,7 +14,7 @@ example = [[
script run lf_hid_bulkclone_v2.lua -f 1 -b 1000
]]
usage = [[
script run lf_hid_bulkclone_v2.lua -f facility -b base_id_num
script run lf_hid_bulkclone_v2.lua -f facility -b base_id_num
]]
arguments = [[
-h : this help
@ -67,7 +67,7 @@ local function exitMsg(msg)
end
local function main(args)
print( string.rep('--',20) )
print( string.rep('--',20) )
print()
@ -107,7 +107,7 @@ local function main(args)
print("Press Enter to write the next card, type 'r' and press Enter to retry, or type 'q' and press Enter to quit.")
local user_input = io.read()
if user_input:lower() == 'q' then
print("Timestamp: ", timestamp)
print("Successful Writes:")

View file

@ -69,7 +69,7 @@ local function exitMsg(msg)
end
local function main(args)
print( string.rep('--',20) )
print( string.rep('--',20) )
print()

View file

@ -594,7 +594,7 @@ static int CmdDesGetSessionParameters(CLIParserContext *ctx, DesfireContext_t *d
if (selectway) {
*selectway = ISW6bAID;
}
}
}
if (appisoid && id) {
@ -608,9 +608,9 @@ static int CmdDesGetSessionParameters(CLIParserContext *ctx, DesfireContext_t *d
*id = xisoid & 0xffff;
if (selectway) {
*selectway = ISWIsoID;
}
}
}
}
DesfireSetKey(dctx, keynum, algores, key);
DesfireSetKdf(dctx, kdfAlgo, kdfInput, kdfInputLen);

View file

@ -1146,7 +1146,7 @@ int DesfireSelectAndAuthenticateW(DesfireContext_t *dctx, DesfireSecureChannel s
}
if (verbose) {
PrintAndLogEx(INFO, "%s is " _GREEN_("selected"), DesfireWayIDStr(way, id));
}
}
}
} else if (way == ISWIsoID && id != 0x0000) {

View file

@ -9,7 +9,7 @@ Author: Cory Solovewicz
Description:
This is a python script to automate what the updating of the /lualibs/amiibo_tools.lua
file which holds a lua table of all known amiibos. Previously updating the
amiibo_tools.lua was a very manual process.
amiibo_tools.lua was a very manual process.
This script automates the following original command:
curl https://raw.githubusercontent.com/N3evin/AmiiboAPI/master/database/amiibo.json | jq 'del(.amiibos[].release)' | jq 'del(.characters)' | pbcopy --> transform to table

View file

@ -13652,8 +13652,8 @@
}
},
"metadata": {
"commands_extracted": 788,
"commands_extracted": 784,
"extracted_by": "PM3Help2JSON v1.00",
"extracted_on": "2025-08-29T11:56:30"
"extracted_on": "2025-09-02T14:01:50"
}
}