diff --git a/README.md b/README.md
index 4422f7d28df2cf90f086d957e3d730c5c2069d01..82445b900c308d249cd6b04cb3d945aa15b8ec77 100644
--- a/README.md
+++ b/README.md
@@ -17,4 +17,12 @@
5. 增加替换返回的cookie
6. 增加修改返回的状态码和文本
7. 增加删除返回的cookie
- 8. 增加给返回的数据添加cookie
\ No newline at end of file
+ 8. 增加给返回的数据添加cookie
+
+- 2021/4/28 - 2
+ 1. 增加了发送数据的监听
+ 2. 增加修改发送出去的URL
+ 3. 增加替换发送的POST数据
+ 4. 增加重写发送的POST数据
+ 5. 增加修改发送时的cookie
+ 6. 增加设置发送时的协议头
\ No newline at end of file
diff --git a/efd/efd.cpp b/efd/efd.cpp
index ed71a8a73f7bd4570a5840e171664eb578688e94..57a095469d76cf6d2595248a2f41ba4c7c97f485 100644
Binary files a/efd/efd.cpp and b/efd/efd.cpp differ
diff --git a/efd/efd.def b/efd/efd.def
index 4127589fb94d64ab32f472dfd3d9699305ec2788..e182ad6e32bc49b1f2a0fdf2a1999e12004539a3 100644
--- a/efd/efd.def
+++ b/efd/efd.def
@@ -22,4 +22,11 @@ RecvResetHtml
RecvInsertBody
RecvInsertCookie
RecvRemoveCookie
-RecvResetState
\ No newline at end of file
+RecvResetState
+SendResetPostBytes
+SendResetPostStr
+SendResetURL
+SendReplaceURL
+SendReplacePost
+SendResetCookie
+SendResetHeader
\ No newline at end of file
diff --git a/efd/efd.h b/efd/efd.h
index cd8124df5795bdf9453a21c16a2e4a500c52581b..94ddf6fe529f4630abde9dfd4bb9d95c5d5a072e 100644
--- a/efd/efd.h
+++ b/efd/efd.h
@@ -10,6 +10,7 @@ struct EFD_pmMessage {
#pragma once
typedef void (WINAPI *RecvCallbackFun)(EFD_pmMessage* pmmessage,char * url,char * head,char * cookie,unsigned int raw, unsigned int rawLen);
+typedef void (WINAPI* SendCallbackFun)(EFD_pmMessage* pmmessage, char* url, char* head, char* cookie, unsigned int post, unsigned int postLen);
extern "C" _declspec(dllexport) int __stdcall InitFiddler(int port, int callback);
extern "C" _declspec(dllexport) void __stdcall CloseFiddler();
extern "C" _declspec(dllexport) void __stdcall AutoStartFiddlerProxy(bool start);
@@ -34,6 +35,15 @@ extern "C" _declspec(dllexport) int __stdcall RecvInsertBody(EFD_pmMessage*, ch
extern "C" _declspec(dllexport) int __stdcall RecvInsertCookie(EFD_pmMessage*, char*);
extern "C" _declspec(dllexport) int __stdcall RecvRemoveCookie(EFD_pmMessage*);
extern "C" _declspec(dllexport) int __stdcall RecvResetState(EFD_pmMessage*, char*, char*);
+extern "C" _declspec(dllexport) int __stdcall SendResetPostBytes(EFD_pmMessage * pmmessage, char* newdataBase64);
+extern "C" _declspec(dllexport) int __stdcall SendResetPostStr(EFD_pmMessage * pmmessage, char* newdata);
+extern "C" _declspec(dllexport) int __stdcall SendResetURL(EFD_pmMessage * pmmessage, char* newUrl);
+extern "C" _declspec(dllexport) int __stdcall SendReplaceURL(EFD_pmMessage * pmmessage, char* rawUrl, char* newUrl);
+extern "C" _declspec(dllexport) int __stdcall SendReplacePost(EFD_pmMessage * pmmessage, char* rawPost, char* newPost);
+extern "C" _declspec(dllexport) int __stdcall SendResetCookie(EFD_pmMessage * pmmessage, char* newCookie);
+extern "C" _declspec(dllexport) int __stdcall SendResetHeader(EFD_pmMessage * pmmessage, char* headerKey, char* headerVal);
+
+
@@ -44,3 +54,17 @@ extern "C" _declspec(dllexport) int __stdcall RecvResetState(EFD_pmMessage*, ch
#define RECV_INSERT_COOKIE 2005
#define RECV_RESET_STATE 2006
+#define SEND_RESET_POST_BYTES 1001
+#define SEND_RESET_POST_STR 1002
+#define SEND_RESET_URL 1003
+#define SEND_REPLACE_URL 1004
+#define SEND_REPLACE_POST 1005
+#define SEND_RESET_COOKIE 1006
+#define SEND_RESET_HEADER 1007
+
+int nextPmIndex(EFD_pmMessage* pmmessage) {
+ EFD_pmMessage pmIndex = *(pmmessage);
+ pmIndex.count = pmIndex.count + 1;
+ *(pmmessage) = pmIndex;
+ return pmIndex.count;
+}
diff --git a/efd/efd.vcxproj b/efd/efd.vcxproj
index 29df3086362d61b699cc21e96719e726382118d8..09629dda7cd00751a0592c6ab9f4d2010dd5a1d4 100644
--- a/efd/efd.vcxproj
+++ b/efd/efd.vcxproj
@@ -181,6 +181,8 @@
+
+
diff --git a/efd/efd.vcxproj.filters b/efd/efd.vcxproj.filters
index a38908b8967f6c65cb79089ed2644ceabf793133..7e1f9fedccc803358fb7a945d61781b0416c80bd 100644
--- a/efd/efd.vcxproj.filters
+++ b/efd/efd.vcxproj.filters
@@ -24,6 +24,12 @@
头文件
+
+ 头文件
+
+
+ 头文件
+
diff --git a/efd/recv.h b/efd/recv.h
new file mode 100644
index 0000000000000000000000000000000000000000..97f4a0b1762c2a75e5bdfbc130dbdf58cd9ee54b
--- /dev/null
+++ b/efd/recv.h
@@ -0,0 +1,62 @@
+#pragma once
+
+int __stdcall RecvRepeatHtml(EFD_pmMessage* pmmessage, char* rawdata, char* newdata) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = RECV_REPLACE_BODY;
+ pm.pmdata1 = rawdata;
+ pm.pmdata2 = newdata;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+
+//recv_дص
+int __stdcall RecvResetHtml(EFD_pmMessage* pmmessage, char* newdata) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = RECV_RESET_BODY;
+ pm.pmdata1 = newdata;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+//recv_
+int __stdcall RecvInsertBody(EFD_pmMessage* pmmessage, char* adddata) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = RECV_INSERT_BODY;
+ pm.pmdata1 = adddata;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+//recv_µcookie
+int __stdcall RecvInsertCookie(EFD_pmMessage* pmmessage, char* cookie) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = RECV_INSERT_COOKIE;
+ pm.pmdata1 = cookie;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+//recv_
+int __stdcall RecvRemoveCookie(EFD_pmMessage* pmmessage, char* adddata) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = RECV_REMOVE_COOKIE;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+//recv_¸ı䷵ص״̬״̬ı
+int __stdcall RecvResetState(EFD_pmMessage* pmmessage, char* stateCode, char* stateText) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = RECV_RESET_STATE;
+ pm.pmdata1 = stateCode;
+ pm.pmdata2 = stateText;
+ *(pmmessage + index) = pm;
+ return index;
+}
diff --git a/efd/send.h b/efd/send.h
new file mode 100644
index 0000000000000000000000000000000000000000..04a4d17a8a8be3eec98d66aafa400c9b9ae1b24d
--- /dev/null
+++ b/efd/send.h
@@ -0,0 +1,76 @@
+#pragma once
+
+//send postbase64byte
+int __stdcall SendResetPostBytes(EFD_pmMessage* pmmessage, char* newdataBase64) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = SEND_RESET_POST_BYTES;
+ pm.pmdata1 = newdataBase64;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+//send postbase64str
+int __stdcall SendResetPostStr(EFD_pmMessage* pmmessage, char* newdata) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = SEND_RESET_POST_STR;
+ pm.pmdata1 = newdata;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+//send ύȥURL
+int __stdcall SendResetURL(EFD_pmMessage* pmmessage, char* newUrl) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = SEND_RESET_URL;
+ pm.pmdata1 = newUrl;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+
+//send 滻URL
+int __stdcall SendReplaceURL(EFD_pmMessage* pmmessage,char* rawUrl, char* newUrl) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = SEND_REPLACE_URL;
+ pm.pmdata1 = rawUrl;
+ pm.pmdata2 = newUrl;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+
+//send 滻POST
+int __stdcall SendReplacePost(EFD_pmMessage* pmmessage, char* rawPost, char* newPost) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = SEND_REPLACE_POST;
+ pm.pmdata1 = rawPost;
+ pm.pmdata2 = newPost;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+//send µcookie
+int __stdcall SendResetCookie(EFD_pmMessage* pmmessage, char* newCookie) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = SEND_RESET_COOKIE;
+ pm.pmdata1 = newCookie;
+ *(pmmessage + index) = pm;
+ return index;
+}
+
+//send /µheaderЭͷ
+int __stdcall SendResetHeader(EFD_pmMessage* pmmessage, char* headerKey,char* headerVal) {
+ int index = nextPmIndex(pmmessage);
+ EFD_pmMessage pm = *(pmmessage + index);
+ pm.type = SEND_RESET_HEADER;
+ pm.pmdata1 = headerKey;
+ pm.pmdata2 = headerVal;
+ *(pmmessage + index) = pm;
+ return index;
+}