Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

add haddr for Java entrypoints (#6161) #6510

Merged
merged 1 commit into from
Jan 15, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions shlr/java/class.c
Original file line number Diff line number Diff line change
Expand Up @@ -1343,7 +1343,7 @@ R_API RBinJavaField* r_bin_java_read_next_method(RBinJavaObj *bin, const ut64 of
method->class_name = r_str_dup (NULL, "NULL");
} else {
// XXX - default to this class?
method->field_ref_cp_obj = r_bin_java_get_item_from_bin_cp_list(bin, bin->cf2.this_class);
method->field_ref_cp_obj = r_bin_java_get_item_from_bin_cp_list (bin, bin->cf2.this_class);
method->class_name = r_bin_java_get_item_name_from_bin_cp_list (bin, method->field_ref_cp_obj);
}
IFDBG eprintf ("Parsing %s(%s)\n", method->name, method->descriptor);
Expand Down Expand Up @@ -1445,7 +1445,7 @@ R_API RBinJavaField* r_bin_java_read_next_field(RBinJavaObj *bin, const ut64 off
field->class_name = r_str_dup (NULL, "NULL");
}else {
// XXX - default to this class?
field->field_ref_cp_obj = r_bin_java_get_item_from_bin_cp_list(bin, bin->cf2.this_class);
field->field_ref_cp_obj = r_bin_java_get_item_from_bin_cp_list (bin, bin->cf2.this_class);
field->class_name = r_bin_java_get_item_name_from_bin_cp_list (bin, field->field_ref_cp_obj);
}
IFDBG eprintf ("Parsing %s(%s)", field->name, field->descriptor);
Expand Down Expand Up @@ -1641,7 +1641,7 @@ R_API RBinJavaCPTypeObj* r_bin_java_get_item_from_bin_cp_list(RBinJavaObj *bin,
if (bin == NULL)
return NULL;
if (idx > bin->cp_count || idx == 0)
return r_bin_java_get_java_null_cp();
return r_bin_java_get_java_null_cp ();
return r_bin_java_get_item_from_cp_item_list (bin->cp_list, idx);
}

Expand Down Expand Up @@ -1727,7 +1727,7 @@ R_API ut32 r_bin_java_get_utf8_len_from_cp_item_list(RList *cp_list, ut64 idx) {
return value;
}

R_API RBinJavaCPTypeObj* r_bin_java_get_item_from_cp_item_list (RList *cp_list, ut64 idx) {
R_API RBinJavaCPTypeObj* r_bin_java_get_item_from_cp_item_list(RList *cp_list, ut64 idx) {
/*
Search through the Constant Pool list for the given CP Index.
rvalue: RBinJavaObj *
Expand All @@ -1739,7 +1739,7 @@ R_API RBinJavaCPTypeObj* r_bin_java_get_item_from_cp_item_list (RList *cp_list,
return item;
}

R_API char* r_bin_java_get_item_name_from_cp_item_list (RList *cp_list, RBinJavaCPTypeObj *obj, int depth) {
R_API char* r_bin_java_get_item_name_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj, int depth) {
/*
Given a constant poool object Class, FieldRef, MethodRef, or InterfaceMethodRef
return the actual descriptor string.
Expand Down Expand Up @@ -1774,7 +1774,7 @@ R_API char* r_bin_java_get_item_name_from_cp_item_list (RList *cp_list, RBinJava
return NULL;
}

R_API char* r_bin_java_get_name_from_cp_item_list (RList *cp_list, ut64 idx) {
R_API char* r_bin_java_get_name_from_cp_item_list(RList *cp_list, ut64 idx) {
/*
Given a constant poool object Class, FieldRef, MethodRef, or InterfaceMethodRef
return the actual descriptor string.
Expand All @@ -1791,7 +1791,7 @@ R_API char* r_bin_java_get_name_from_cp_item_list (RList *cp_list, ut64 idx) {
return NULL;
}

R_API char* r_bin_java_get_item_desc_from_cp_item_list (RList *cp_list, RBinJavaCPTypeObj *obj, int depth) {
R_API char* r_bin_java_get_item_desc_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj, int depth) {
/*
Given a constant poool object FieldRef, MethodRef, or InterfaceMethodRef
return the actual descriptor string.
Expand All @@ -1817,7 +1817,7 @@ R_API char* r_bin_java_get_item_desc_from_cp_item_list (RList *cp_list, RBinJava
return NULL;
}

R_API char* r_bin_java_get_desc_from_cp_item_list (RList *cp_list, ut64 idx) {
R_API char* r_bin_java_get_desc_from_cp_item_list(RList *cp_list, ut64 idx) {
/*
Given a constant poool object FieldRef, MethodRef, or InterfaceMethodRef
return the actual descriptor string.
Expand Down Expand Up @@ -2316,6 +2316,7 @@ R_API RList * r_bin_java_get_entrypoints(RBinJavaObj* bin) {
addr->vaddr = addr->paddr = \
r_bin_java_get_method_code_offset (fm_type) + bin->loadaddr;
}
addr->haddr = fm_type->file_offset;
r_list_append (ret, addr);
}
}
Expand Down