Changeset 1596

Show
Ignore:
Timestamp:
03/06/08 21:05:47 (6 months ago)
Author:
common
Message:

libemu

  • adjust sctest
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libemu/trunk/testsuite/sctest.c

    r1551 r1596  
    9797        unsigned char *scode; 
    9898        uint32_t size; 
    99         uint32_t offset; 
     99        int offset; 
    100100        char *profile_file; 
    101101} opts; 
     
    21172117 
    21182118        if ( (opts.offset = emu_shellcode_test(e, (uint8_t *)opts.scode, opts.size)) >= 0 ) 
    2119                 printf(SUCCESS"\n"); 
     2119                printf("%s offset = 0x%08x\n",SUCCESS, opts.offset); 
    21202120        else 
    21212121                printf(FAILED"\n"); 
     
    22752275 
    22762276        /* set eip to the code */ 
    2277         emu_cpu_eip_set(emu_cpu_get(e), static_offset); 
     2277        emu_cpu_eip_set(emu_cpu_get(e), static_offset + opts.offset); 
    22782278 
    22792279        emu_cpu_reg32_set(emu_cpu_get(e), esp, 0x0012fe98); 
    22802280 
    2281       free(opts.scode); 
     2281//    free(opts.scode); 
    22822282 
    22832283        return 0; 
     
    22862286int prepare_from_stdin(struct emu *e) 
    22872287{ 
    2288         if (opts.size != 0) 
     2288        if (opts.size == 0) 
    22892289                prepare_from_stdin_read(); 
    22902290 
     
    23332333                emu_cpu_eip_set(emu_cpu_get(e), static_offset + opts.offset); 
    23342334 
    2335                 opts.scode = (unsigned char *) tests[i].code; 
    2336                 opts.size = tests[i].codesize; 
     2335                if ( opts.scode == 0 ) 
     2336                { 
     2337                        opts.scode = malloc(tests[i].codesize); 
     2338                        memcpy(opts.scode, tests[i].code, tests[i].codesize); 
     2339                        opts.size = tests[i].codesize; 
     2340                } 
    23372341                return 0; 
    23382342        } 
     
    25512555                free(opts.profile_file); 
    25522556 
     2557        if (opts.scode) 
     2558                free(opts.scode); 
     2559 
    25532560        return 0; 
    25542561}