可否将目标程序的命令或变量截取下来,得到字符串,例如 ( 积分: 50 )

  • 主题发起人 主题发起人 m911
  • 开始时间 开始时间
M

m911

Unregistered / Unconfirmed
GUEST, unregistred user!
可否将目标程序的命令或变量截取下来,得到字符串,<br>例如MD5加密程序,能否在得知函数的情况下,得到这个函数要处理的字符串?该怎么做?最好有例子
 
可以,&nbsp;Hook&nbsp;GetCommandLineA
 
有具体点的例子吗?
 
http://m8858.ik8.com/d5.rar<br>比如这个MD5加密程序的加密函数为&nbsp;MD5Print(MD5String(md5_str));&nbsp;如何通过截取函数的方式来得到md5_str的字符串呢?
 
procedure&nbsp;TForm1.btn1Click(Sender:&nbsp;TObject);<br>begin<br>&nbsp;&nbsp;APIHooker.DllName:=&nbsp;'kernel32.dll';<br>&nbsp;&nbsp;APIHooker.DllFunction:=&nbsp;'GetCommandLineA';<br>&nbsp;&nbsp;APIHooker.ParamCount:=&nbsp;0;<br>&nbsp;&nbsp;APIHooker.Init:=&nbsp;True;<br>&nbsp;&nbsp;APIHooker.Hook:=&nbsp;True;<br>end;<br><br>function&nbsp;TForm1.APIHookerAPIHookProc(<br>&nbsp;&nbsp;const&nbsp;Params:&nbsp;array&nbsp;of&nbsp;Pointer):&nbsp;Cardinal;<br>var<br>&nbsp;&nbsp;lpStartupInfo:&nbsp;PStartupInfo;<br>&nbsp;&nbsp;lpProcessInformation:&nbsp;PProcessInformation;<br>begin<br>&nbsp;&nbsp;//恢复原来&nbsp;GetCommandLineA&nbsp;的作用<br>&nbsp;&nbsp;//Result:=&nbsp;Cardinal(GetCommandLineA);<br>&nbsp;&nbsp;Result:=&nbsp;'12345';&nbsp;//命令行强制返回&nbsp;12345<br>end;
 
这段代码和那个例子有关系吗?
 
有关,只要知道&nbsp;MD5String&nbsp;这个函数是从哪里来的,就可以截获掉。
 
MD5String函数就在程序里啊&nbsp;&nbsp;如何做呢?
 
所有程序都有入口点,知道入口点就可以拦截.<br>至于任何知道,可以用类似的方法<br>showmessage(InttoHex(DWORD(@MD5String),8));
 
后退
顶部