s1986q 发表于 2019-7-18 20:50

最近看到找 call的新思路

本帖最后由 s1986q 于 2019-7-20 12:35 编辑

原文链接:[已解决]小白学破解,OD找CALL的求助
例子自己下吧。
用ce 的谁修改了 找到 加减血的地址
od载入

alt+f9 向会看。call 地址
加减血都走一个地方,生成是call 地址不一样。
call 地址一直在变,发现后四位不变,是不是偏移量,在看程序的基址,
正好是前四位,搜索基址。
上ce:

搜到了,关闭程序。排除不少,选用是绿色的基址。//加血call
mov eax,
add eax,0x17F0
call eax

//01151840    55            push ebp
//00271840    55            push ebp
//减血call
mov eax,
add eax,0x1840
call eax
//血的基址
mov eax,
add eax,0x5014
不知道在别的pc机子正常运行。
不好意识上面的代码有问题:
重启电脑就没能用了。
77C7AC10地址改变了,也就是重定向了,跟踪到(ntd.dll+0xDAC10)指向程序的基址。
ntdll 内存管理,一个进程有很多个。
从程序内存获取的不是基址。
放弃。
我在网上发现直接获取程序的基址:
编写c语言代码如下,试试吧:
    int ins=0;
    _asm{
      mov eax,fs:
      mov eax,DWORD PTR
      mov ins,eax
   
    }
printf("\n%d\n",ins);


是程序的基址。
//加血call
mov eax,fs:
mov eax,DWORD PTR
add eax,0x17F0
call eax

//01151840    55            push ebp
//00271840    55            push ebp
//减血call
mov eax,fs:
mov eax,DWORD PTR
add eax,0x1840
call eax
//血的基址
mov eax,fs:
mov eax,DWORD PTR
add eax,0x5014获取进程基址:https://blog.csdn.net/gwzz1228/article/details/51436324
VC++6.0远程调用Call:https://blog.csdn.net/yeahhook/article/details/39861843
例子:


vc 6.0
程序注入源码:

源码程序注入的时注意:
编译成Release版本,注入程序崩溃。

好多call,用到这句:
mov eax,fs:
mov eax,DWORD PTR

gunxsword 发表于 2019-7-18 21:12

没太看懂...但是看大概意思,应该是说你CALL的这个程序,有重定位!

yaoyao7 发表于 2019-7-19 09:19

我也没太看懂,,,

skyvicky 发表于 2019-7-19 09:49

这个地址是固定不变的么,会不会重新定位什么的?能不能放出具体的实例看看。。也好学习学习

wanan_girl 发表于 2019-7-19 10:08

没有看懂....

lxq007 发表于 2019-7-19 16:09

也没看懂…………

Joduska 发表于 2019-7-19 19:59

{:1_909:} 讲的牛头不对马嘴

s1986q 发表于 2019-7-19 22:38

skyvicky 发表于 2019-7-19 09:49
这个地址是固定不变的么,会不会重新定位什么的?能不能放出具体的实例看看。。也好学习学习

我已更新,可以看看。
页: [1]
查看完整版本: 最近看到找 call的新思路