]> cvs.zerfleddert.de Git - proxmark3-svn/commitdiff
fix 'hf iclass eload' (thanks to @sherhannn79)
authorpwpiwi <pwpiwi@users.noreply.github.com>
Mon, 30 Sep 2019 06:29:20 +0000 (07:29 +0100)
committerGitHub <noreply@github.com>
Mon, 30 Sep 2019 06:29:20 +0000 (07:29 +0100)
CHANGELOG.md
client/cmdhficlass.c

index e95ccde61bdf8349dfda88745c00365c45dd8754..fdd499fe47a754c9c51d54aaa7a3bb1504ae020c 100644 (file)
@@ -15,7 +15,8 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac
 - Wrong UID at HitagS simulation
 - `hf 15 sim` now works as expected (piwi)
 - `hf mf chk t` save to emulator memory now works as expected (mwalker)
- - Fix `hf mf sim` - wrong access rights to write key B in trailer (@McEloff)
+- Fix `hf mf sim` - wrong access rights to write key B in trailer (@McEloff)
+- allow files > 512Bytes in 'hf iclass eload' (@Sherhannn79)
  
 ### Added
 - Added to `hf 14a apdu` print apdu and compose apdu (@merlokk)
index a2e3175461ac89b251a6068a90b2d0591c3d1d5d..35cf350c76da8d464fca0d5a2e8f68251eef23e8 100644 (file)
@@ -294,14 +294,13 @@ int CmdHFiClassELoad(const char *Cmd) {
        //File handling and reading
        FILE *f;
        char filename[FILE_PATH_SIZE];
-       if(opt == 'f' && param_getstr(Cmd, 1, filename, sizeof(filename)) > 0)
-       {
+       if (opt == 'f' && param_getstr(Cmd, 1, filename, sizeof(filename)) > 0) {
                f = fopen(filename, "rb");
-       }else{
+       } else {
                return hf_iclass_eload_usage();
        }
 
-       if(!f) {
+       if (!f) {
                PrintAndLog("Failed to read from file '%s'", filename);
                return 1;
        }
@@ -324,8 +323,7 @@ int CmdHFiClassELoad(const char *Cmd) {
        printIclassDumpInfo(dump);
        //Validate
 
-       if (bytes_read < fsize)
-       {
+       if (bytes_read < fsize) {
                prnlog("Error, could only read %d bytes (should be %d)",bytes_read, fsize );
                free(dump);
                return 1;
@@ -334,10 +332,10 @@ int CmdHFiClassELoad(const char *Cmd) {
        uint32_t bytes_sent = 0;
        uint32_t bytes_remaining  = bytes_read;
 
-       while(bytes_remaining > 0){
+       while (bytes_remaining > 0) {
                uint32_t bytes_in_packet = MIN(USB_CMD_DATA_SIZE, bytes_remaining);
                UsbCommand c = {CMD_ICLASS_EML_MEMSET, {bytes_sent,bytes_in_packet,0}};
-               memcpy(c.d.asBytes, dump, bytes_in_packet);
+               memcpy(c.d.asBytes, dump+bytes_sent, bytes_in_packet);
                SendCommand(&c);
                bytes_remaining -= bytes_in_packet;
                bytes_sent += bytes_in_packet;
Impressum, Datenschutz