#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <rz_lib.h>
#include <rz_util.h>
#include <rz_flag.h>
#include <rz_analysis.h>
#include <rz_parse.h>
Go to the source code of this file.
◆ parse()
Definition at line 71 of file parse_att2intel.c.
77 char str[1024] = { 0 };
78 char *
buf, *ptr, *optr, *
num;
87 ptr = strchr(
buf,
'#');
92 if (*
buf ==
'.' ||
buf[strlen(
buf) - 1] ==
':') {
102 ptr = strchr(
buf,
'[');
115 char *rest =
strdup(ptr + 1);
116 size_t dist = strlen(data) + 1 - (ptr -
buf);
127 ptr = strchr(
buf,
' ');
129 ptr = strchr(
buf,
'\t');
133 for (++ptr; *ptr ==
' '; ptr++) {
136 strncpy(
w0,
buf,
sizeof(
w0) - 1);
137 strncpy(
w1, ptr,
sizeof(
w1) - 1);
140 ptr = strchr(ptr,
',');
143 for (++ptr; *ptr ==
' '; ptr++) {
146 strncpy(
w1, optr,
sizeof(
w1) - 1);
147 strncpy(
w2, ptr,
sizeof(
w2) - 1);
148 ptr = strchr(ptr,
',');
151 for (++ptr; *ptr ==
' '; ptr++) {
154 strncpy(
w2, optr,
sizeof(
w2) - 1);
155 strncpy(
w3, ptr,
sizeof(
w3) - 1);
160 const char *wa[] = {
w0,
w1,
w2,
w3 };
162 for (
i = 0;
i < 4;
i++) {
163 if (wa[
i][0] !=
'\0') {
RZ_API void Ht_() free(HtName_(Ht) *ht)
static static fork const void static count static fd const char const char static newpath char char char static envp time_t static t const char static mode static whence const char static dir time_t static t unsigned static seconds const char struct utimbuf static buf static inc static sig const char static mode static oldfd struct tms static buf static getgid static geteuid const char static filename static arg static mask struct ustat static ubuf static getppid static setsid static egid sigset_t static set struct timeval struct timezone static tz fd_set fd_set fd_set struct timeval static timeout const char char static bufsiz const char static swapflags void static offset const char static length static mode static who const char struct statfs static buf unsigned unsigned num
return strdup("=SP r13\n" "=LR r14\n" "=PC r15\n" "=A0 r0\n" "=A1 r1\n" "=A2 r2\n" "=A3 r3\n" "=ZF zf\n" "=SF nf\n" "=OF vf\n" "=CF cf\n" "=SN or0\n" "gpr lr .32 56 0\n" "gpr pc .32 60 0\n" "gpr cpsr .32 64 0 ____tfiae_________________qvczn\n" "gpr or0 .32 68 0\n" "gpr tf .1 64.5 0 thumb\n" "gpr ef .1 64.9 0 endian\n" "gpr jf .1 64.24 0 java\n" "gpr qf .1 64.27 0 sticky_overflow\n" "gpr vf .1 64.28 0 overflow\n" "gpr cf .1 64.29 0 carry\n" "gpr zf .1 64.30 0 zero\n" "gpr nf .1 64.31 0 negative\n" "gpr itc .4 64.10 0 if_then_count\n" "gpr gef .4 64.16 0 great_or_equal\n" "gpr r0 .32 0 0\n" "gpr r1 .32 4 0\n" "gpr r2 .32 8 0\n" "gpr r3 .32 12 0\n" "gpr r4 .32 16 0\n" "gpr r5 .32 20 0\n" "gpr r6 .32 24 0\n" "gpr r7 .32 28 0\n" "gpr r8 .32 32 0\n" "gpr r9 .32 36 0\n" "gpr r10 .32 40 0\n" "gpr r11 .32 44 0\n" "gpr r12 .32 48 0\n" "gpr r13 .32 52 0\n" "gpr r14 .32 56 0\n" "gpr r15 .32 60 0\n" "gpr r16 .32 64 0\n" "gpr r17 .32 68 0\n")
static int replace(int argc, const char *argv[], char *newstr)
RZ_API const char * rz_str_lchr(const char *str, char chr)
RZ_API void rz_str_trim_head(RZ_NONNULL char *str)
Removes whitespace characters (space, tab, newline etc.) from the end of a string....
RZ_API void rz_str_trim(RZ_NONNULL RZ_INOUT char *str)
Removes whitespace characters (space, tab, newline etc.) from the beginning and end of a string.
RZ_API int rz_str_replace_char(char *s, int a, int b)
RZ_API const char * rz_strbuf_set(RzStrBuf *sb, const char *s)
References free(), i, n, num, replace(), rz_str_cpy, rz_str_lchr(), rz_str_replace_char(), rz_str_trim(), rz_str_trim_head(), rz_strbuf_set(), sb, snprintf, cmd_descs_generate::str, strdup(), w0, w1, w2, and w3.
◆ replace()
static int replace |
( |
int |
argc, |
|
|
const char * |
argv[], |
|
|
char * |
newstr |
|
) |
| |
|
static |
Definition at line 14 of file parse_att2intel.c.
20 {
"cmpl",
"cmp 2, 1" },
21 {
"testl",
"test 2, 1" },
22 {
"leal",
"lea 2, 1" },
23 {
"movl",
"mov 2, 1" },
24 {
"xorl",
"xor 2, 1" },
25 {
"andl",
"and 2, 1" },
27 {
"addl",
"add 2, 1" },
30 {
"subl",
"sub 2, 1" },
31 {
"mull",
"mul 2, 1" },
32 {
"divl",
"div 2, 1" },
33 {
"pushl",
"push 1" },
42 for (j =
k = 0;
ops[
i].str[j] !=
'\0'; j++,
k++) {
44 const char *
w =
argv[
ops[
i].str[j] -
'0'];
62 for (
i = 0;
i < argc;
i++) {
64 strcat(
newstr, (
i == 0 ||
i == argc - 1) ?
" " :
",");
static RASN1String * newstr(const char *string)
static static fork const void static count static fd const char const char static newpath char char argv
References argv, i, k, newstr(), NULL, op, ops, cmd_descs_generate::str, and w.
Referenced by parse().
◆ rizin_plugin
Initial value:= {
}
RzParsePlugin rz_parse_plugin_att2intel
Definition at line 184 of file parse_att2intel.c.
◆ rz_parse_plugin_att2intel
Initial value:= {
.name = "att2intel",
.desc = "X86 att 2 intel plugin",
}
static bool parse(RzParse *p, const char *data, RzStrBuf *sb)
Definition at line 175 of file parse_att2intel.c.