Skip to content

Instantly share code, notes, and snippets.

@radare
radare / gist:fa86e9f2e35c25b34f97
Created February 5, 2015 15:34
type punned warns in tccgen
```
tccgen.c: In function 'is_compatible_func':
tccgen.c:514:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
if (FUNC_CALL(s1->r) != FUNC_CALL(s2->r))
^
tccgen.c:514:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
tccgen.c: In function 'parse_btype':
tccgen.c:1220:21: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ad->aligned = FUNC_ALIGN(s->r);
^
Sparc instructions not found in Capstone?
-----------------------------------------
RDPSR
RDWIM
RDTBR
WRPSR
WRWIM
WRTBR
RETT
LDA
> lets attach
/usr/bin/node: symbol lookup error: /home/pancake/Sync/private/frida-dumper/node_modules/frida/lib/binding/Release/node-v14-linux-x64/frida_binding.node: undefined symbol: _ZNK2v85Value9ToIntegerEPNS_7IsolateE
Breakpoint 1, _exit (status=127) at ../sysdeps/unix/sysv/linux/_exit.c:28
28 ../sysdeps/unix/sysv/linux/_exit.c: No such file or directory.
(gdb) bt
#0 _exit (status=127) at ../sysdeps/unix/sysv/linux/_exit.c:28
#1 0x00007ffff7de9e89 in _dl_signal_error (errcode=errcode@entry=0,
objname=objname@entry=0xfc1920 "/home/pancake/Sync/private/frida-dumper/node_modules/frida/lib/binding/Release/node-v14-linux-x64/frida_binding.node", occation=occation@entry=0x7ffff7df65b8 "symbol lookup error",
errstring=errstring@entry=0x7fffffffa150 "undefined symbol: _ZNK2v85Value9ToIntegerEPNS_7IsolateE")
21:15 < pancake> looks like To*() methods have been deprecated in latest v8.. how can I replace them?
21:16 < caitp> you mean the "Use maybe version" deprecation warning?
21:16 < pancake> yes
21:16 < pancake> well, i dont get that warning i just get an undefined symbol
21:16 < pancake> which is a bit more anoying
21:17 < caitp> an undefined symbol, as in a linker error?
21:17 < pancake> node: symbol lookup error:
/home/pancake/Sync/private/frida-dumper/node_modules/frida/lib/binding/Release/node-v14-linux-x64/frida_binding.node: undefined
symbol: _ZNK2v85Value7ToInt32EPNS_7IsolateE
21:17 < pancake> yes
$ rasm2 -a arm -b 16 -D e8b1d0f80090b9f80cc0d9f808900cea010c09ebcc09d9f800c09cea010f02d1
0x00000000 2 e8b1 cbz r0, 0x3e
0x00000002 4 d0f80090 ldr.w sb, [r0]
0x00000006 4 b9f80cc0 ldrh.w ip, [sb, 0xc]
0x0000000a 4 d9f80890 ldr.w sb, [sb, 8]
0x0000000e 4 0cea010c and.w ip, ip, r1
0x00000012 4 09ebcc09 add.w sb, sb, ip, lsl 3
0x00000016 4 d9f800c0 ldr.w ip, [sb]
0x0000001a 4 9cea010f teq.w ip, r1
0x0000001e 2 02d1 bne 0x26
extern crate libc;
use libc::{ c_void };
use std::env;
fn atoi(k: &str) -> i32 {
match k.parse::<i32>() {
Ok(val) => val,
Err(_) => 0
}
/* sdb-nan.js - pancake@nopcode.org // 2015 */
#include <nan.h>
#include <sdb.h>
using namespace v8;
class Database : public node::ObjectWrap {
public:
// static void Init(Handle<Object> exports);
// this file is included when compiling src/bin/*.rs or tests
// maybe we shouldn't define 'main' here
extern crate radeco;
use std::env;
use radeco::frontend::esil;
fn parse_verbose<'a> (p: &mut esil::Parser, expression: &'a String) {
let expstr = expression.as_str();
println!("< {}", expression);
pair:scc pancake$ make
scc build options:
CFLAGS = -std=c99
LDFLAGS = -s
CC = cc
cc -c -o die.o die.c
cc -c -o xcalloc.o xcalloc.c
cc -c -o xmalloc.o xmalloc.c
cc -c -o xrealloc.o xrealloc.c
cc -c -o xstrdup.o xstrdup.c
p_format.c: In function ‘r_print_format_register’:
p_format.c:895:63: warning: passing argument 2 of ‘p->get_register_value’ discards ‘const’ qualifier from pointer target type
if (!SEEVALUE) p->printf("%s : 0x%08"PFMT64x"\n", ri->name, p->get_register_value (p->reg, ri));
^
p_format.c:895:63: note: expected ‘struct RRegItem *’ but argument is of type ‘const struct RRegItem *’
p_format.c:896:38: warning: passing argument 2 of ‘p->get_register_value’ discards ‘const’ qualifier from pointer target type
else p->printf("0x%08"PFMT64x"\n", p->get_register_value (p->reg, ri));
^
p_format.c:896:38: note: expected ‘struct RRegItem *’ but argument is of type ‘const struct RRegItem *’
p_format.c:898:21: warning: passing argument 2 of ‘p->get_register_value’ discards ‘const’ qualifier from pointer target type