欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

飞秋多开

飞秋多开

纯属今天在公司无聊之举,高手飘过吧
直接OD载入程序在CreateMutexA以及FindWindowA设置参考断点
00472E9C   .  68 7C595E00         PUSH 飞秋FeiQ.005E597C                                          ; /MutexName = "LICQ_CLASS"
00472EA1   .  6A 00               PUSH 0                                                        ; |InitialOwner = FALSE
00472EA3   .  6A 00               PUSH 0                                                        ; |pSecurity = NULL
00472EA5   .  FF15 80025900       CALL DWORD PTR DS:[<&KERNEL32.CreateMutexA>]                  ; \CreateMutexA  ;创建互斥对象
00472EAB   .  6A 32               PUSH 32                                                       ; /Timeout = 50. ms
00472EAD   .  50                  PUSH EAX                                                      ; |hObject
00472EAE   .  FF15 E4015900       CALL DWORD PTR DS:[<&KERNEL32.WaitForSingleObject>]           ; \WaitForSingleObject
00472EB4   .  85C0                TEST EAX,EAX
00472EB6   .  74 59               JE SHORT 飞秋FeiQ.00472F11          ;关键跳转,可修改为JMP
00472EB8   .  6A 40               PUSH 40                                                       ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
00472EBA   .  68 40035E00         PUSH 飞秋FeiQ.005E0340                                          ; |Title = "提示"
00472EBF   .  68 58595E00         PUSH 飞秋FeiQ.005E5958                                          ; |Text = "FeiQ程序已在运行,只能运行一个实例!"
00472EC4   .  6A 00               PUSH 0                                                        ; |hOwner = NULL
00472EC6   .  FF15 D40F5900       CALL DWORD PTR DS:[<&USER32.MessageBoxA>]                     ; \MessageBoxA
00472ECC   .  6A FF               PUSH -1                                                       ; /ExitCode = FFFFFFFF
00472ECE   .  FF15 7C025900       CALL DWORD PTR DS:[<&KERNEL32.ExitProcess>]                   ; \ExitProcess
00472ED4   .  8D4C24 1C           LEA ECX,DWORD PTR SS:[ESP+1C]
00472ED8   .  C68424 4C290000 01  MOV BYTE PTR SS:[ESP+294C],1
00472EE0   .  E8 23FC0F00         CALL <JMP.&MFC42.#??1CString@@QAE@XZ_800>
00472EE5   .  8D4C24 18           LEA ECX,DWORD PTR SS:[ESP+18]
00472EE9   .  C68424 4C290000 00  MOV BYTE PTR SS:[ESP+294C],0
00472EF1   .  E8 12FC0F00         CALL <JMP.&MFC42.#??1CString@@QAE@XZ_800>
00472EF6   .  8D4C24 24           LEA ECX,DWORD PTR SS:[ESP+24]
00472EFA   .  C78424 4C290000 FFF>MOV DWORD PTR SS:[ESP+294C],-1
00472F05   .  E8 18061000         CALL <JMP.&MFC42.#??1CCommandLineInfo@@UAE@XZ_617>
00472F0A   .  33C0                XOR EAX,EAX
00472F0C   .  E9 DF0E0000         JMP 飞秋FeiQ.00473DF0
00472F11   >  6A 00               PUSH 0                                                        ; /Title = NULL
00472F13   .  68 7C595E00         PUSH 飞秋FeiQ.005E597C                                          ; |Class = "LICQ_CLASS"
00472F18   .  FF15 880F5900       CALL DWORD PTR DS:[<&USER32.FindWindowA>]                     ; \FindWindowA  ;查找飞秋窗体
00472F1E   .  85C0                TEST EAX,EAX
00472F20   .  74 60               JE SHORT 飞秋FeiQ.00472F82          ;关键跳转,可修改为JMP
00472F22   .  50                  PUSH EAX                                                      ; /hWnd
00472F23   .  FF15 6C0F5900       CALL DWORD PTR DS:[<&USER32.SetForegroundWindow>]             ; \SetForegroundWindow
00472F29   .  6A 40               PUSH 40                                                       ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
00472F2B   .  68 40035E00         PUSH 飞秋FeiQ.005E0340                                          ; |Title = "提示"
00472F30   .  68 58595E00         PUSH 飞秋FeiQ.005E5958                                          ; |Text = "FeiQ程序已在运行,只能运行一个实例!"
00472F35   .  6A 00               PUSH 0                                                        ; |hOwner = NULL
00472F37   .  FF15 D40F5900       CALL DWORD PTR DS:[<&USER32.MessageBoxA>]                     ; \MessageBoxA
00472F3D   .  6A FF               PUSH -1                                                       ; /ExitCode = FFFFFFFF
00472F3F   .  FF15 7C025900       CALL DWORD PTR DS:[<&KERNEL32.ExitProcess>]                   ; \ExitProcess
以上修改2处关键跳转就避开了互斥对象,以及窗体查找
接下来是飞秋监听端口的修改,飞秋监听端口30985,如果监听端口不修改,监听端口冲突,程序崩溃
OD查找当前模块名称,找到如下调用:
名称位于 飞秋FeiQ, 条目 635
 地址=00591188
 区段=.rdata
 类型=输入    (已知)
 名称=WSOCK32.#_bind_2
#_bind_2上设置参考断点后,F9来到如下代码:
F8单步跟踪
0049C04C  |> \8B96 8C000000       MOV EDX,DWORD PTR DS:[ESI+8C]    ;此处为SOCKET结构体
0049C052  |.  33C9                XOR ECX,ECX
0049C054  |.  894C24 10           MOV DWORD PTR SS:[ESP+10],ECX
0049C058  |.  66:8B86 90000000    MOV AX,WORD PTR DS:[ESI+90]    ;F8跟踪可以看到,这里是给结构体的成员变量sin_port赋值,也就是监听端口
0049C05F  |.  894C24 14           MOV DWORD PTR SS:[ESP+14],ECX
0049C063  |.  895424 14           MOV DWORD PTR SS:[ESP+14],EDX
0049C067  |.  8B56 08             MOV EDX,DWORD PTR DS:[ESI+8]
0049C06A  |.  894C24 18           MOV DWORD PTR SS:[ESP+18],ECX
0049C06E  |.  894C24 1C           MOV DWORD PTR SS:[ESP+1C],ECX
0049C072  |.  8D4C24 10           LEA ECX,DWORD PTR SS:[ESP+10]
0049C076  |.  6A 10               PUSH 10                                                       ; /AddrLen = 10 (16.)
0049C078  |.  51                  PUSH ECX                                                      ; |pSockAddr
0049C079  |.  52                  PUSH EDX                                                      ; |Socket
0049C07A  |.  66:C74424 1C 0200   MOV WORD PTR SS:[ESP+1C],2                                    ; |
0049C081  |.  66:894424 1E        MOV WORD PTR SS:[ESP+1E],AX                                   ; |
0049C086  |.  E8 13800D00         CALL <JMP.&WSOCK32.#_bind_2>                                  ; \bind  ;绑定端口
对此处代码做如下修改:
0049C04C  |> \8B96 8C000000       MOV EDX,DWORD PTR DS:[ESI+8C]
0049C052      C786 90000000 CA1D0>MOV DWORD PTR DS:[ESI+90],1DCA  ;修改为冰河木马端口7626呵呵
0049C05C      90                  NOP
0049C05D      90                  NOP
0049C05E      90                  NOP
0049C05F      C74424 14 00000000  MOV DWORD PTR SS:[ESP+14],0    ;赋值为0,应为之前修改了XOR ECX,ECX的清零操作
0049C067  |.  8B56 08             MOV EDX,DWORD PTR DS:[ESI+8]
0049C06A  |.  894C24 18           MOV DWORD PTR SS:[ESP+18],ECX
0049C06E  |.  894C24 1C           MOV DWORD PTR SS:[ESP+1C],ECX
0049C072  |.  8D4C24 10           LEA ECX,DWORD PTR SS:[ESP+10]
0049C076  |.  6A 10               PUSH 10                                                       ; /AddrLen = 10 (16.)
0049C078  |.  51                  PUSH ECX                                                      ; |pSockAddr
0049C079  |.  52                  PUSH EDX                                                      ; |Socket
0049C07A  |.  66:C74424 1C 0200   MOV WORD PTR SS:[ESP+1C],2                                    ; |
0049C081  |.  66:894424 1E        MOV WORD PTR SS:[ESP+1E],AX                                   ; |
0049C086  |.  E8 13800D00         CALL <JMP.&WSOCK32.#_bind_2>                                  ; \bind
修改完后就可以保存文件了,大功告成~!~!

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功