吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8235|回复: 25
收起左侧

[分享] 有奖答题【补充答案周期】

 关闭 [复制链接]
头像被屏蔽
Shark恒 发表于 2014-7-16 22:26
提示: 作者被禁止或删除 内容自动屏蔽

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

SaberMason 发表于 2014-7-17 18:25
Shark恒 发表于 2014-7-17 17:24
第三种方法,条件断点使用什么条件可以防止时钟断下?

我再百度下...
如时钟事件的地址401000
条件就是 dword ptr ds:[xxx] != 401000
这样就过虑掉了时钟事件
头像被屏蔽
 楼主| Shark恒 发表于 2014-7-16 23:22
头像被屏蔽
 楼主| Shark恒 发表于 2014-7-16 22:27
拓海真一 发表于 2014-7-16 22:51
本帖最后由 拓海真一 于 2014-7-16 23:44 编辑

回答2:如果按钮事件断在时钟事件上,那么单步在头部 55 push ebp  上使用 33 retn 即可将时钟事件去除

完整点:
[Asm] 纯文本查看 复制代码
0042868A  |. /EB 09         jmp Xpengyou.00428695
0042868C  |> |8B4D EC       /mov ecx,[local.5]
0042868F  |. |83E9 01       |sub ecx,0x1
00428692  |. |894D EC       |mov [local.5],ecx
00428695  |> \837D EC 00     cmp [local.5],0x0
00428699  |.  7C 12         |jl Xpengyou.004286AD
0042869B  |.  8B55 EC       |mov edx,[local.5]
0042869E  |.  8B45 08       |mov eax,[arg.1]
004286A1  |.  8B4C90 10     |mov ecx,dword ptr ds:[eax+edx*4+0x10]
004286A5  |.  894D F0       |mov [local.4],ecx
004286A8  |.  FF75 F0       |push [local.4]
004286AB  |.^ EB DF         \jmp Xpengyou.0042868C
004286AD  |>  FF55 FC       call [local.1]


通常我们都是在 004286AD |> FF55 FC call [local.1] 处下断点 如果是时钟事件,断下后 不操作任何按钮等, 他断下 就是时钟事件了,因为只有定时执行子程序的基本只有时钟了,此时断在call 断点 ,我们要F7单步步入,这时就已经处于断首,各种语言的断首是不同的,但是只有在步入的第一行写retn才会有效,易语言一般断首都是


[Asm] 纯文本查看 复制代码
00428640  /$  55            push ebp
00428641  |.  8BEC          mov ebp,esp


在00428640 /$ 55 push ebp 处双击写入代码 retn 即可
如果有检测更改断首的话, 可在第二行写

pop ebp
retn

可保证堆栈平衡和过检测断首

根本去除时钟的方法 小菜无能,无法对已经开启的时钟去除, 只能给各位提供一个小方法: Ctrl+G 输入 SetTimer 然后在跳转到的地址写入 retn 0x10 这样可防止开启时钟,开启时钟的命令都会经过这个API,让他失效会让所有时钟都无效
如果要去除已经运行的时钟,只有注入代码使用API  KillTimer 来清除,除此之外小菜无能为力
原API代码
[Asm] 纯文本查看 复制代码
773B79FB >  B8 18100000     mov eax,0x1018
773B7A00    B9 00000000     mov ecx,0x0
773B7A05    8D5424 04       lea edx,dword ptr ss:[esp+0x4]
773B7A09    64:FF15 C000000>call dword ptr fs:[0xC0]
773B7A10    83C4 04         add esp,0x4
773B7A13    C2 1000         retn 0x10

修改后的API代码
[Asm] 纯文本查看 复制代码
773B79FB >  C2 1000         retn 0x10
773B79FE    90              nop
773B79FF    90              nop
773B7A00    B9 00000000     mov ecx,0x0
773B7A05    8D5424 04       lea edx,dword ptr ss:[esp+0x4]
773B7A09    64:FF15 C000000>call dword ptr fs:[0xC0]
773B7A10    83C4 04         add esp,0x4
773B7A13    C2 1000         retn 0x10

点评

不使用第三方工具的话,改如何修改?等答案……  发表于 2014-7-16 23:33
对哈,否则还是能干扰到按钮事件断点的话,那这种方式无意义。哇咔咔  发表于 2014-7-16 23:27
为了答案的完整性,我来刨根问底了。一直单补F8的话会一直出现RETN,请问是那个断首?  发表于 2014-7-16 23:02
SaberMason 发表于 2014-7-17 11:32
回答第二题,研究了一上午,还待别学了点易
应该没有跑题
一.创建时钟,在属性框中设置时钟周期:
1. alt+m 搜索控件名称(属性框中的名称, 如"时钟1")
2. 时钟内存数据(长度0x70):
   00467B3B  CA B1 D6 D3 31 00 00 00   00 00 00 20 00 00 00 10  时钟1...... ...
   00467B4B  00 00 00 1A 00 00 00 1A   00 00 00 00 00 00 00 00  ...32...32........
   00467B5B  00 00 00 00 00 00 00 04   00 00 00 00 00 00 00 00  ...............
   00467B6B  00 00 00 00 00 00 00 00   00 00 00 00 01 00 00 00  ...............
   00467B7B  00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00  ................
   00467B8B  00 00 00 00 00 00 00 00   00 00 00 00 01 00 00 00  ...............
   00467B9B  88 13 00 00 00 00 00 00   00 34 10 24 C1 00 00 00  ?.......4$?..


   结构:
   0x0:     时钟名称
  0x8:     时钟控件位置Left
   0xC:     时钟控件位置Top
   0x10:   时钟控件宽度
  0x14:   时钟控件高度
  0x2F:   标记
  标记 + 0x30: 时钟周期

3. 全nop掉,或在时钟周期的位置nop


二. 创建时钟,在代码中设置时钟周期:
1.  格式
   0040105E    6A 00           push 0x0
    00401060    68 E8030000     push 0x3E8          // 时钟周期
   00401065    6A FF           push -0x1
    00401067    6A 08           push 0x8
    00401069    68 03000116     push 0x16010003
    0040106E    68 01000152     push 0x52010001
    00401073    E8 AA000000     call 11111.00401122
    00401078    83C4 18         add esp,0x18

2.  把push 0x3E8 改成 push 0便去掉了时钟周期

三. 用条件断点
1. 在按钮事件(时钟)断下后, 进入函数开头return;
2. 在FF55FC中设置条件断点,让时钟无法断下

点评

装逼模式开启! 3E8是时钟ID吧? 原来把ID置0就行了啊。。  发表于 2014-8-21 13:21
头像被屏蔽
 楼主| Shark恒 发表于 2014-7-17 17:24
提示: 作者被禁止或删除 内容自动屏蔽
dsong 发表于 2014-7-18 20:51
问题3:
一、把StrongOD和OD Advanced设置一下,不行把反调试选项都勾上吧。不过貌似StrongOD里面一个Kill BadPE Bug勾上后有些程序不能正常运行,还有OD Advanced里面“采用灵活性质的断点”貌似有时也会有问题(试了好久终于发现了问题)。
二、自己断到反调试函数上NOP掉,最常见就是IsDebuggerPresent(我在调试垃圾公司的软件的时候用旧的OD都看到这个函数了都没NOP,当时真是脑子进水了),还有什么HeapFlags,ForceFlags,GetTickCount,ZwSetInformationThread 。貌似这些我都遇到过......
      或者不用OllyICE了吧,(其实我也没用过其他的)。顺便看看还有什么好方法。(其实VMP总是检测到我的OD也是一个令我一直头疼到现在的问题。)
dsong 发表于 2014-7-20 17:27
问题4:我用的OD是两个版本的结合,一个是黑鹰初级里面的"ODbyDYK", 另外一个是吾爱的OD。
ODbyDYK:
优点:有“标题隐藏插件”,可以逃过一些壳的标题检测;程序名为“Explorer.exe”,可以逃过一些壳的父进程名检测。
缺点:"OD隐藏插件"版本太老,现在躲不过新型壳的OD检测。
吾爱OD:
优点:有“StrongOD”和“OD Advanced”,可以躲过许多壳的检测。
缺点:“StrongOD”和“OD Advanced”在OD封包时的设置貌似不是很强大(而且我试到现在没有发现完美的设置,是我智商问题吗?),标题不能隐藏(碰到过程序检测标题是"吾爱破解"、"LCG"等的),OD名字不是Explorer.exe。

建议:

吾爱的OD可以加个标题隐藏插件,然后把OD程序名改成explorer.exe。也许会更加完善一些。

免费评分

参与人数 1热心值 +1 收起 理由
Shark恒 + 1 总结很好,建议也不错,感谢dsong!

查看全部评分

lanmaososo 发表于 2014-7-25 01:55
本帖最后由 lanmaososo 于 2014-7-25 14:32 编辑

问题5:当一个软件检测到了VM虚拟机,你有几种方法躲避检测?分别怎么操作?
答:虚拟机目录下的VMX


isolation.tools.getPtrLocation.disable = "TRUE"
isolation.tools.setPtrLocation.disable = "TRUE"
isolation.tools.setVersion.disable = "TRUE"
isolation.tools.getVersion.disable = "TRUE"
monitor_control.disable_directexec = "TRUE"
monitor_control.disable_chksimd = "TRUE"
monitor_control.disable_ntreloc = "TRUE"
monitor_control.disable_selfmod = "TRUE"
monitor_control.disable_reloc = "TRUE"
monitor_control.disable_btinout = "TRUE"
monitor_control.disable_btmemspace = "TRUE"
monitor_control.disable_btpriv = "TRUE"
monitor_control.disable_btseg = "TRUE"



您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-18 02:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表