|
|
|
|
||
【文章标题】: F8 CALL 01 “计算和”分析视频教程
【文章作者】: redrose
【作者邮箱】: xiao_xiao0928@tom.com
【作者主页】: www.wgbcw.cn
【作者QQ号】: 644297310
【软件名称】: F8 CALL 01
【软件大小】: 423KB
【下载地址】: 自己搜索下载
【加壳方式】: 无
【保护方式】: 无
【编写语言】: Delphi
【使用工具】: Ollydbg、屏幕录像专家V7.5、Code Injector、Delphi7.0
【操作平台】: XPSP3
【软件介绍】: CALL分析小程序
【作者声明】: 感谢F8 CALL源程序提供作者,没有其他目的。失误之处,敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
说明:1、为了能上传网站,我把每个视频都尽量的缩小。本次视频只对F8 CALL 01中的“计算和”做分析。
2、本来想录制有声视频的,但这个录像专家还存在录制声音就出错的Bug。
分析步骤:
第一步:Ollydbg附加目标程序(也可以直接载入程序)。Ollydbg我已经打开了,好了现在附加目标程序成功。
第二步:下断点bp send。然后回到目标程序,点击“计算和”按钮,好了已经断下。我们来到这里F2下断点,断下注意看
寄存器里的变化,刚才看了下,应该看出什么了吧,这里确定就是我们要找的“计算和”按钮CALL,至于到底有几个参数,
我们来测试下。
第三步:测试CALL的正确性。工具用Code Injector,这工具很方便的。看我演示:
1、打开进程
2、编写汇编代码如下:
push 0023
push 0012
push 00A77170
CALL 00459924
3、点击CreateRemoteThread按钮,测试成功。
4、现在我们再输入另一组数字试下。
我们输入了12和18计算和,演示成功。
第四步:我们来看下CALL 00408858 这个有何用。通过分析为10进制文本字符进入转成16进制字串输出,这里估计是源程序
作者有意用上的,因为感觉用上这几个就很难分析出来“计算和”按钮CALL到底是那个。当然这点上只是猜测。
好了,现在我们来编写个小程序来测试下。
第五步:编写测试程序。我用Delphi7.0为大家做个演示。
现在这个测试程序写好了,用注入器把DLL注入到目标进程,看演示。呵呵出错了,看来这方法不行,这样也不行,得找原因了。
呵呵是不是成功了。现在我们在试下刚才的两种方法。
1、代码如下:
var
a,b :Integer ;
addr1:Pointer ;
begin
a := StrToInt(edt1.Text);
b := StrToInt(edt2.Text);
addr1 :=Pointer($00459924);
asm
push a
push b
push $00A77170 //呵呵刚才大意了这里不是这个值
call addr1
end;
end;
已经通过。
2、代码如下:
var
a,b :Integer ;
begin
a := StrToInt(edt1.Text);
b := StrToInt(edt2.Text);
asm
push a
push b
push $00A77170 //呵呵刚才大意了这里不是这个值
mov eax,$00459924
call eax
end;
end;
是不是又成功了。
3、我们再试试这样的代码:
const addr1:Pointer = Pointer($00459924);
var
a,b :Integer ;
begin
a := StrToInt(edt1.Text);
b := StrToInt(edt2.Text);
asm
push a
push b
push $00A77170 //呵呵刚才大意了这里不是这个值
call addr1
end;
end;
这样的方法也行,不管用那种方法目的只是一个,能正确调用“计算和”按钮。
我们现在改改加数和被加数试下,看演示,是不是都提示“等待服务器响应...
服务器:两数的和为:XXX
”
好了本次视频就到这里,希望大家能看明白了,同时也希望这次公布教程后,QQ别在被盗。下次再继续。谢谢!
--------------------------------------------------------------------------------
【版权声明】: 本文原创于潇潇的编程网站, 转载请注明作者并保持文章的完整, 谢谢!
2009年04月17日 23:48:29