Commit 784058cf authored by bol-van's avatar bol-van
Browse files

nfqws: support +offset@filename fake/pattern loading

parent ce367b1a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -547,7 +547,7 @@ v71.5
winws: --wf-raw-part
nfqws: --dpi-desync=hostfakesplit
nfqws: --dpi-desync-fake-tcp-mod=seq
nfqws: --dpi-desync-fake-tls=!+offset
nfqws: --dpi-desync-fake-tls=!+offset , --dpi-desync-fake-xxx=[+offset]@filename
nfqws: --dpi-desync-fakedsplit-mod=altorder
nfqws: optimize ipv4 ip_id. apply ip_id on all OS the same way.
blockcheck: new strategies
+168 −137

File changed.

Preview size limit exceeded, changes collapsed.

+5 −5
Original line number Diff line number Diff line
@@ -241,11 +241,11 @@ bool dp_fake_defaults(struct desync_profile *dp)
{
	struct blob_item *item;
	if (blob_collection_empty(&dp->fake_http))
		if (!blob_collection_add_blob(&dp->fake_http,fake_http_request_default,strlen(fake_http_request_default),0))
		if (!blob_collection_add_blob(&dp->fake_http,fake_http_request_default,strlen(fake_http_request_default),0,0))
			return false;
	if (blob_collection_empty(&dp->fake_tls))
	{
		if (!(item=blob_collection_add_blob(&dp->fake_tls,fake_tls_clienthello_default,sizeof(fake_tls_clienthello_default),4+sizeof(((struct fake_tls_mod*)0)->sni))))
		if (!(item=blob_collection_add_blob(&dp->fake_tls,fake_tls_clienthello_default,sizeof(fake_tls_clienthello_default),4+sizeof(((struct fake_tls_mod*)0)->sni),0)))
			return false;
		if (!(item->extra2 = malloc(sizeof(struct fake_tls_mod))))
			return false;
@@ -253,13 +253,13 @@ bool dp_fake_defaults(struct desync_profile *dp)
	}
	if (blob_collection_empty(&dp->fake_unknown))
	{
		if (!(item=blob_collection_add_blob(&dp->fake_unknown,NULL,256,0)))
		if (!(item=blob_collection_add_blob(&dp->fake_unknown,NULL,256,0,0)))
			return false;
		memset(item->data,0,item->size);
	}
	if (blob_collection_empty(&dp->fake_quic))
	{
		if (!(item=blob_collection_add_blob(&dp->fake_quic,NULL,620,0)))
		if (!(item=blob_collection_add_blob(&dp->fake_quic,NULL,620,0,0)))
			return false;
		memset(item->data,0,item->size);
		item->data[0] = 0x40;
@@ -269,7 +269,7 @@ bool dp_fake_defaults(struct desync_profile *dp)
	{
		if (blob_collection_empty(*fake))
		{
			if (!(item=blob_collection_add_blob(*fake,NULL,64,0)))
			if (!(item=blob_collection_add_blob(*fake,NULL,64,0,0)))
				return false;
			memset(item->data,0,item->size);
		}
+3 −1
Original line number Diff line number Diff line
@@ -579,8 +579,9 @@ struct blob_item *blob_collection_add(struct blob_collection_head *head)
	}
	return entry;
}
struct blob_item *blob_collection_add_blob(struct blob_collection_head *head, const void *data, size_t size, size_t size_reserve)
struct blob_item *blob_collection_add_blob(struct blob_collection_head *head, const void *data, size_t size, size_t size_reserve, size_t offset)
{
	if (offset>=size) return NULL;
	struct blob_item *entry = calloc(1,sizeof(struct blob_item));
	if (!entry) return NULL;
	if (!(entry->data = malloc(size+size_reserve))) 
@@ -591,6 +592,7 @@ struct blob_item *blob_collection_add_blob(struct blob_collection_head *head, co
	if (data) memcpy(entry->data,data,size);
	entry->size = size;
	entry->size_buf = size+size_reserve;
	entry->offset = offset;

	// insert to the end
	struct blob_item *itemc,*iteml=LIST_FIRST(head);
+1 −1
Original line number Diff line number Diff line
@@ -164,7 +164,7 @@ struct blob_item {
};
LIST_HEAD(blob_collection_head, blob_item);
struct blob_item *blob_collection_add(struct blob_collection_head *head);
struct blob_item *blob_collection_add_blob(struct blob_collection_head *head, const void *data, size_t size, size_t size_reserve);
struct blob_item *blob_collection_add_blob(struct blob_collection_head *head, const void *data, size_t size, size_t size_reserve, size_t offset);
void blob_collection_destroy(struct blob_collection_head *head);
bool blob_collection_empty(const struct blob_collection_head *head);