GitHub Viewer
// ShellCode_Aplib.cpp : 定义控制台应用程序的入口点。
//
#include
#include
#include
#ifndef APLIB_ERROR
# define APLIB_ERROR ((unsigned int) (-1))
#endif // APLIB_ERROR
/* aplib v 1.1.1*/
/* internal data structure */
struct APDSTATE {
const unsigned char *source;
unsigned char *destination;
unsigned int tag;
unsigned int bitcount;
};
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
unsigned int __cdecl aplib_entry(const void *source, unsigned int srclen, void *destination, unsigned int dstlen);
unsigned int aplib_main(const void *source, unsigned int srclen, void *destination, unsigned int dstlen);
void aplib_end();
#ifdef __cplusplus
}
#endif // __cplusplus
#pragma optimize("ts", off)
unsigned int __cdecl aplib_entry(const void *source, unsigned int srclen, void *destination, unsigned int dstlen) {
return aplib_main(source, srclen, destination, dstlen);
}
static unsigned int aP_getbit(struct APDSTATE *ud)
{
unsigned int bit;
/* check if tag is empty */
if (!ud->bitcount--) {
/* load next tag */
ud->tag = *ud->source++;
ud->bitcount = 7;
}
/* shift bit out of tag */
bit = (ud->tag >> 7) & 0x01;
ud->tag