原帖最后由 CCStation 于 2020-1-17 22:38 编辑 [Delphi] 杂文原查察 复制代码
前端光阳吧,易语言的微信hook仿佛蛮火的,而我只会delphi。微信hook也就钻研了一下,觉得像写外挂一下,对微信停行逆向,阐明地址,阐明call。分享取探讨:
一、注入原人的dll。
一些教程室频中,易语言的注入就一句代码。etcp的一个模块。我才华有限,手头也没有现成的代码。所以就像还是用键盘hook的方式注入。后期正在思考进程间通讯作AI智能云。此外便是感觉正在dll里面写窗口仿佛简略一点。
键盘hook注入的相关代码如下
[Delphi] 杂文原查察 复制代码
function keyhook(icode, wp, lp: Integer): LRESULT; stdcall; begin if (icode = HC_ACTION) then begin if (wp = xK_HOME) and ((1 shl 31) and lp = 0) then begin if Form_main = nil then begin Form_Main := TForm_Main.Create(nil); end; Form_Main.xisible := not Form_Main.xisible; end; end; Result := CallNeVtHookEV(keyhhk, icode, wp, lp); end;
1.png (24.95 KB, 下载次数: 0)
下载附件
2020-1-17 21:55 上传
[Asm] 杂文原查察 复制代码
Fhookaddr := AHookAddr; FByteLen := ByteLength; FMyproc := Integer(DspProc); FOldCode := GetMemory(SizeOf(Pointer) + FByteLen * sizeof(Byte)); //申请FOldCode空间 CopyMemory(FOldCode, Pointer(FHookAddr), FByteLen * sizeof(Byte)); FMyAsm2 := GetMemory(100 * SizeOf(Byte)); //申请FMyAsm空间 xirtualProtect(FMyAsm2, 100 * sizeof(Byte), PAGE_EXECUTE_READWRITE, @oldprotect); //调解FmyAsm内存空间可读写 FillMemory(FMyAsm2, 100 * SizeOf(Byte), $90); //初始化空间全副为nop temp := Integer(Self); //temp赋值为superhook原身指针 PByte(Integer(FMyAsm2))^ := $60; //pushad PByte(Integer(FMyAsm2) + 1)^ := $C7; //moZZZ Pbyte(Integer(FMyAsm2) + 2)^ := $C1; //ecV PInteger(Integer(FMyAsm2) + 3)^ := temp; //self CopyMemory(Pointer(Integer(FMyAsm2) + 7), @codearr, 73 * sizeof(Byte)); //codeArr写入,内容为将存放器的值与出至对象字段 Pbyte(Integer(FMyAsm2) + 81)^ := $E8; //call PInteger(Integer(FMyAsm2) + 82)^ := FMyProc - Integer(FMyAsm2) - 82 - 4; //FMyProc的地址 PByte(Integer(FMyAsm2) + 86)^ := $61; //popad CopyMemory(Pointer(Integer(FMyAsm2) + 87), FOldCode, FByteLen * sizeof(Byte)); //运止截与过来的值 PByte(Pointer(Integer(FMyAsm2) + 88 + Fbytelen))^ := $C2; // 正在内存字段的最末写下(retn ) Pword(Pointer(Integer(FMyAsm2) + 89 + Fbytelen))^ := $0000; HookAddr;
2.png (122.24 KB, 下载次数: 0)
下载附件
2020-1-17 22:05 上传
3.png (37.9 KB, 下载次数: 0)
下载附件
2020-1-17 22:25 上传
[Delphi] 杂文原查察 复制代码
procedure AddListTraZZZer; procedure DoAddListTraZZZer(ARoot: Integer); begin if pbyte(ARoot + $D)^ = 0 then begin //Form_Client.DspMsg(ARoot.ToHeVString); SetLength(arr_Addlist, Length(arr_Addlist) + 1); arr_Addlist[High(arr_Addlist)] := ARoot; DoAddListTraZZZer(pinteger(ARoot + $8)^); DoAddListTraZZZer(pinteger(ARoot)^); end; end; ZZZar addr: LongInt; base: LongInt; header: DWORD; begin SetLength(arr_Addlist, 0); SupermemScan(AddrListSig, GetModuleHandle('WeChatWin') + $1000, GetModuleHandle('WeChatWin') + $1000 + $400000, addr); addr := addr - $4; base := Pdword(addr)^; header := pdword(pdword(pdword(base)^ + $28 + $84)^ + $4)^; //二叉遍历 // DoAddListTraZZZer(pdword(header)^); // DoAddListTraZZZer(pdword(header + $8)^); DoAddListTraZZZer(header); end;
4.png (37.26 KB, 下载次数: 0)
下载附件
2020-1-17 22:29 上传
[Delphi] 杂文原查察 复制代码
procedure SendMsg(wV_ID, Amsg: string; aite: string = ''); type Tmsg = record content: PChar; len1: LongInt; len2: LongInt; end; ZZZar p_ID, Pamsg, paite: TMsg; callAddr: LongInt; buff: array[0..$87c] of Byte; p1, p2, p3: Pointer; begin SupermemScan(SendCallSig, GetModuleHandle('WeChatWin') + $1000, GetModuleHandle('WeChatWin') + $1000 + $100000, callAddr); callAddr := callAddr + $F + pdword(callAddr + $b)^; p_ID.content := PChar(wV_ID); p_ID.len1 := Length(wV_ID); p_ID.len2 := Length(wV_ID) * 2; Pamsg.content := PChar(Amsg); Pamsg.len1 := Length(Amsg); Pamsg.len2 := Length(Amsg) * 2; if aite = '' then begin paite.content := nil; end else begin paite.content := PChar(aite); end; paite.len1 := Length(aite); paite.len2 := Length(aite) * 2; p1 := @p_ID; p2 := @Pamsg; p3 := @paite; asm moZZZ edV, p1; moZZZ eaV, p3; push 1; push eaV; moZZZ ebV, p2; push ebV; lea ecV, buff; call calladdr; add esp, $C; end; end;查察全副评分
抖音快刷业务,24小时抖音自助下单平台,抖音热门业务平台...
浏览:28214 时间:2024-09-20我靠TikTok抖音赚到了人生第一个100w:这个风口行业,...
浏览:1150 时间:2022-09-11【高端精品】外面收费988的星芽短剧全自动挂机,轻松赚钱不费...
浏览:26 时间:2025-02-26QQ里下载的随机骰子突然不能用,发出去一直转,别人发的我看不...
浏览:55 时间:2025-02-18法院认定未经许可获取和使用他人网络数据产品构成不正当竞争的裁...
浏览:49 时间:2025-02-16花760元,“水军”能把一条假消息炒成5.4亿微博阅读量...
浏览:58 时间:2025-02-14