好友
阅读权限10
听众
最后登录1970-1-1
|
新年来了:礼物没送上,给大家放个难题,会弄的就自己试试,不会的等大牛级的人马来弄,假如有兴趣的也不妨下来玩玩。
续:对ICG大牛教程的不解
之前,我试过对一个按键精灵脚本软件实行去时间的限制,可是没成功。
后来,我发现了2处地方。都可以改时间的,可以延长时间的:
1:
7C80244B |. 6A 00 push 0 ; /Alertable = FALSE
7C80244D |. FF75 08 push dword ptr ss:[ebp+8] ; |Timeout = 60000. ms
当时EBP的值是01E4FF88(这个值是会变的),加上8后的地址就成了:01E4FF90 (汇编码为 pushad)
经过二进制编辑后,是 60。
这个软件的限制使用时间为6分钟,即6000MS,所以,把只有一个“60”变成N个“60”可以达到延长时间的效果。
修改过后:
7C802449 |. 8BEC mov ebp,esp
7C80244B |. 6A 00 push 0 ; /Alertable = FALSE
7C80244D |. FF75 08 push dword ptr ss:[ebp+8] ; |Timeout = 1616928864. ms
7C802450 |. E8 4BFFFFFF call kernel32.SleepEx ; \SleepEx
结果保存后,生成一个kernel32.dll。
重新载入后,看到的还是6000MS。没有改变过任何东西。
本以为不能这样修改,就试行了第2种方法:
7C802450 |. E8 4BFFFFFF call kernel32.SleepEx ; \SleepEx //跟进
会发现
7C8023EB FF15 C814807C call dword ptr ds:[<&ntdll.N>; \ //这个CALL会使OD运行
经过NOP后,走下几步,会到另外的地方:
769AE31D . 56 push esi
769AE31E . BE F86DAB76 mov esi,ole32.76AB6DF8
769AE323 > FF35 C86EAB76 push dword ptr ds:[76AB6EC8] ; /Timeout = 60000. ms //延迟时间 6分钟
769AE329 . FF15 F0129976 call dword ptr ds:[<&KERNEL3>; \Sleep //延时停止。程序运行
769AE32F . 8BCE mov ecx,esi ; !! //NOP上面那个CALL后停在这里
769AE331 . E8 C6EEFFFF call ole32.769AD1FC
769AE336 . 833D A86EAB76 00 cmp dword ptr ds:[76AB6EA8],>
769AE33D . A1 AC6EAB76 mov eax,dword ptr ds:[76AB6E>
769AE342 . 8B0D B46EAB76 mov ecx,dword ptr ds:[76AB6E>
保存复制的结果。还是生成kernel32.dll。
重新载入OD,同样没任何变化,改的东西全还原了。
请大牛们指导下。
地址:http://d.namipan.com/d/7cde579f916a4698bb8d2973aae6f858a2148215d3883d00 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|