int main(int argc, char** argv) { FILE *fptr; int test; unsigned char * buffer; if ((fptr = fopen("whoa.bmp","r")) == NULL) { printf ("Can't open file for reading.\n"); return 1; } //read_lsb(fptr); //extract_byte(fptr); //read_uint32(fptr); test = read_pixel_offset(fptr); fseek (fptr, test, SEEK_SET); while (1) { test = extract_byte(fptr); if (test == '00000000') break; printf("%c", test); } fclose(fptr); return (EXIT_SUCCESS); }
//-------------------------------------------------------------------------- int idaapi rpc_debmod_t::dbg_update_bpts(update_bpt_info_t *ubpts, int nadd, int ndel) { int skipped = 0; update_bpt_info_t *b; update_bpt_info_t *bend = ubpts + nadd; for ( b=ubpts; b != bend; b++ ) if ( b->code != BPT_OK ) skipped++; if ( skipped == nadd && ndel == 0 ) return 0; // no bpts to update bytevec_t req = prepare_rpc_packet(RPC_UPDATE_BPTS); append_dd(req, nadd-skipped); append_dd(req, ndel); ea_t ea = 0; for ( b=ubpts; b != bend; b++ ) { if ( b->code == BPT_OK ) { append_ea64(req, b->ea-ea); ea = b->ea; append_dd(req, b->size); append_dd(req, b->type); } } ea = 0; bend += ndel; for ( ; b != bend; b++ ) { append_ea64(req, b->ea-ea); ea = b->ea; append_db(req, b->orgbytes.size()); append_memory(req, b->orgbytes.begin(), b->orgbytes.size()); append_dd(req, b->type); } rpc_packet_t *rp = process_request(req); if ( rp == NULL ) return -1; const uchar *ptr = (uchar *)(rp+1); const uchar *end = ptr + rp->length; int ret = extract_long(&ptr, end); bend = ubpts + nadd; for ( b=ubpts; b != bend; b++ ) { if ( b->code == BPT_OK ) { b->code = extract_byte(&ptr, end); if ( b->code == BPT_OK && b->type == BPT_SOFT ) { uchar len = extract_byte(&ptr, end); b->orgbytes.resize(len); extract_memory(&ptr, end, b->orgbytes.begin(), len); } } } bend += ndel; for ( ; b != bend; b++ ) b->code = extract_byte(&ptr, end); return ret; }