To avoid the need of manually keeping it in mind when using the API.
Should use the transparent RzIO and RzCore API without the need to work with block or blocksize
$ rg "core->block[,\s\)]" | wc -l
121
$ rg "core->block[,\s\)]"
test/unit/test_yank.c
20: mu_assert_memeq(core->block, (const ut8 *)"\x44\x33\x22\x11", 4, "original bytes should be right at address 0");
29: mu_assert_memeq(core->block, (const ut8 *)"\x44\x33\x22\x11", 4, "yanked bytes should be pasted at address 4");
46: mu_assert_streq((const char *)core->block, "Hello World", "yanked bytes should be pasted at address 4");
48: mu_assert_streq((const char *)core->block, "HellHello World", "yanked bytes should be pasted at address 4, original content there");
test/db/archos/linux-x64/dbg_bps
263:NAME=read core->block on short move
librz/core/rtr_http.c
438: memcpy(newblk, core->block, core->blocksize);
440: core->block = newblk;
452: core->block = origblk;
468: core->block = newblk;
librz/core/cprint.c
28: value = rz_read_ble(core->block + pos, false, 8);
1093: memcpy(buf, core->block, core->blocksize);
librz/core/cmp.c
187: core->block + i, len - i);
librz/core/tui/visual.c
829: q = core->block + i;
834: q = rz_mem_mem(core->block + d, core->blocksize - d,
837: q = rz_mem_mem(core->block, RZ_MIN(core->blocksize, d),
842: core->print->cur = (int)(size_t)(q - core->block);
924: p = rz_mem_mem(core->block + d, core->blocksize - d,
927: core->print->cur = (int)(size_t)(p - core->block);
1005: rz_asm_disassemble(core->rasm, &op, core->block, RZ_MIN(32, core->blocksize));
1603: core->block + next_roff, 32);
1690: core->block, 32);
1753: &op, core->block, 32);
2675: rz_asm_disassemble(core->rasm, &op, core->block, 32);
3642: op, core->block, 32);
librz/core/cio.c
246: if (core && core->block) {
247: return rz_io_read_at(core->io, core->offset, core->block, core->blocksize);
379: if (rz_analysis_op(core->analysis, &op, core->offset, core->block, core->blocksize, RZ_ANALYSIS_OP_MASK_BASIC) < 1) {
librz/core/hack.c
293: if (rz_analysis_op(core->analysis, &aop, core->offset, core->block, core->blocksize, RZ_ANALYSIS_OP_MASK_BASIC) < 1) {
librz/core/seek.c
208: if (rz_analysis_op(core->analysis, &aop, core->offset, core->block, core->blocksize, RZ_ANALYSIS_OP_MASK_BASIC) > 0) {
librz/core/core.c
591: rz_analysis_op(core->analysis, &op, core->offset, core->block, core->blocksize, RZ_ANALYSIS_OP_MASK_BASIC);
2326: core->block = (ut8 *)calloc(RZ_CORE_BLOCKSIZE + 1, 1);
2327: if (!core->block) {
2796: bump = realloc(core->block, bsize + 1);
2801: core->block = bump;
2803: memset(core->block, 0xff, core->blocksize);
2948: memcpy(ptr + 5, core->block, i); // core->blocksize);
librz/core/cgraph.c
784: if (rz_analysis_op(core->analysis, &op, core->offset, core->block, core->blocksize, flags) > 0) {
librz/core/canalysis.c
1048: ptr = core->block + delta;
librz/core/tui/esil.c
51: memcpy(buf, core->block, sizeof(ut64));
librz/core/tui/define.c
228: core->block + off - core->offset, 32, RZ_ANALYSIS_OP_MASK_BASIC);
312: if (rz_analysis_op(core->analysis, &op, off, core->block + delta,
librz/core/tui/panels.c
1544: &op, core->block, 32);
librz/core/tui/biteditor.c
40: memcpy(buf, core->block + cur, sizeof(ut64));
librz/core/disasm.c
6109: if (buf != core->block) {
librz/core/cmd/cmd_magic.c
96: str = rz_magic_buffer(ck, core->block + delta, core->blocksize - delta);
librz/core/cmd/cmd_search.c
2559: int diff = memcmpdiff(core->block, block, core->blocksize);
2786: memcpy(buf, core->block, bufsz);
librz/core/cmd/cmd_write.c
57: rz_crypto_update(core->crypto, (const ut8 *)core->block, core->blocksize);
librz/core/cmd/cmd_print.c
1598: if (data != core->block) {
1670: handle_entropy(core, plugin->name, core->block, core->blocksize);
1672: handle_ssdeep(core, plugin->name, core->block, core->blocksize);
1674: handle_hash_cfg(core, plugin->name, core->block, core->blocksize);
2134: const ut8 *buffer = core->block + offset;
2188: if (*core->block & 0x1) { // "long" string
2189: const ut8 *ptr = core->block + (bitness / 8) * 2;
2223: if (rz_scan_strings_raw(core->block, found, &scan_opt, 0, core->blocksize, RZ_STRING_ENC_GUESS) < 0) {
2256: if (rz_scan_strings_raw(core->block, found, &scan_opt, 0, core->blocksize, RZ_STRING_ENC_GUESS) < 0) {
2281: string_len = rz_read_ble16(core->block, big_endian);
2284: string_len = rz_read_ble32(core->block, big_endian);
2287: string_len = rz_read_ble64(core->block, big_endian);
2303: opt.buffer = core->block + offset;
2310: print_json_string(core, core->block + offset, string_len, RZ_STRING_ENC_8BIT, true);
2545: // TODO After core->block is removed, this should be changed to a block read.
2573: if (core->blocksize < 4 || !memcmp(core->block, "\xff\xff\xff\xff", 4)) {
2576: char *res = rz_print_json_indent((const char *)core->block, true, " ", NULL);
2801: print_json_string(core, core->block, core->blocksize, RZ_STRING_ENC_UTF16LE, true);
2815: print_json_string(core, core->block, core->blocksize, RZ_STRING_ENC_UTF32LE, true);
2829: print_json_string(core, core->block, core->blocksize, RZ_STRING_ENC_UTF16BE, true);
2843: print_json_string(core, core->block, core->blocksize, RZ_STRING_ENC_UTF32BE, true);
2890: rz_str_bits(buf, core->block + i, 8, NULL);
2900: const ut8 *b = core->block + i - 3;
3015: ut8 *p = (ut8 *)core->block + j;
3024: ut8 *p = (ut8 *)core->block + j;
3038: rz_print_hexii(core->print, core->offset, core->block,
3087: rz_core_print_hexdump(core, core->offset, core->block, len, 16, 1, 1);
3105: memcpy(block, core->block, len);
3115: core->block, len, 8, 1, 1);
3138: int len = (int)rz_str_nlen((const char *)core->block, core->blocksize);
3142: rz_print_bytes(core->print, core->block, len, "%02x");
3204: char *code = rz_lang_byte_array(core->block, size, type); \
3216: char *code = rz_lang_byte_array(core->block, core->blocksize, big_endian ? type##_BE : type##_LE); \
3256: char *code = rz_core_print_bytes_with_inst(core, core->block, core->offset, size);
3629: rz_core_analysis_bytes_il(core, core->block, size, 0, false);
3694: core->num->value = rz_core_print_disasm(core, core->offset, core->block, core->blocksize, RZ_ABS(n_instrs), state, &disasm_options);
3754: ret = rz_asm_disassemble(core->rasm, &asm_op, core->block + i, core->blocksize - i);
3987: int ret = rz_analysis_op(core->analysis, &aop, offset, core->block, core->blocksize, RZ_ANALYSIS_OP_MASK_BASIC);
4066: char *buf = rz_base64_encode_dyn((const unsigned char *)core->block, core->blocksize);
4077: ut8 *buf = rz_base64_decode_dyn((const char *)core->block, core->blocksize);
4100: rz_str_bits(buf, core->block, len + skip, NULL);
4130: RzASN1Object *asn1 = rz_asn1_object_parse(core->block, core->blocksize);
4146: char *s = rz_protobuf_decode(core->block, core->blocksize, false);
4157: char *s = rz_protobuf_decode(core->block, core->blocksize, true);
4169: RzCMS *cms = rz_pkcs7_cms_parse(core->block, core->blocksize);
4193: RzX509Certificate *x509 = rz_x509_certificate_parse2(core->block, core->blocksize);
4223: char *s = rz_axml_decode(core->block, core->blocksize);
4306: ut8 *block_end = core->block + blocksize;
4635: char *s = rz_hash_cfg_randomart(core->block, len, core->offset);
4663: rz_io_read_at(core->io, core->offset, core->block, len);
4664: s = rz_hash_cfg_randomart(core->block, len, core->offset);
4671: rz_io_read_at(core->io, offset0, core->block, len);
6609: colordump(core, core->block, len);
6617: out = rz_inflate(core->block, core->blocksize, &inConsumed, &outlen);
librz/core/cmd/cmd_cmp.c
190: rz_core_print_hexdiff(core, core->offset, core->block, addr, b, core->blocksize, col);
206: rz_core_print_hexdiff(core, core->offset, core->block, addr, b, core->blocksize, col);
326: ret = rz_hex_bin2str(core->block, strlen(input) / 2, (char *)buf);
librz/core/cmd/cmd_seek.c
52: rz_asm_disassemble(core->rasm, &op, core->block, 32);
73: ret = rz_analysis_op(core->analysis, &op, core->offset, core->block,
librz/core/cmd/cmd_analysis.c
375: ut32 n = rz_read_ble32(core->block + i, big_endian);
5535: core_analysis_bytes_json(core, core->block, core->blocksize, 0, state->d.pj);
5538: core_analysis_bytes_standard(core, core->block, core->blocksize, 0);
5549: core_analysis_bytes_esil(core, core->block, core->blocksize, 0);
5554: core_analysis_bytes_desc(core, core->block, core->blocksize, 0);
5559: core_analysis_bytes_size(core, core->block, core->blocksize, 0);
5583: core_analysis_bytes_json(core, core->block, core->blocksize, count, state->d.pj);
5586: core_analysis_bytes_standard(core, core->block, core->blocksize, count);
5616: core_analysis_bytes_size(core, core->block, core->blocksize, count);
5641: core_analysis_bytes_esil(core, core->block, core->blocksize, count);
5758: rz_core_analysis_bytes_il(core, core->block, core->blocksize, count, false);
5782: rz_core_analysis_bytes_il(core, core->block, core->blocksize, count, true);
5796: core_analysis_bytes_desc(core, core->block + cur, core->blocksize, 1);
6602: core->offset, core->block, core->blocksize);
To avoid the need of manually keeping it in mind when using the API.
Should use the transparent RzIO and RzCore API without the need to work with block or blocksize
I propose the new API that will handle all reads and writes itself:
RZ_API bool rz_core_io_read_at(RzCore *core, ut64 offset, ut64 len, ut64 *read)RZ_API bool rz_core_io_write_at(RzCore *core, ut64 offset, ut64 len, ut64 *written)See #2694