09 2020 档案
摘要:SetTimer() 函数 向系统申请一个计时器并指定计时器的时间间隔,同时获得一个处理器超时的回调函数,超时时系统会向申请计时器的目标窗口发送消息 WM_TIMER timeSetEvent() 函数 多媒体计时器,精度可以达到 1ms GetTickCount() 函数 返回从系统成功启动以来所
阅读全文
摘要:将程序跑起来,多下断点,多看几遍代码流程。 程序的主流程非常的简单,两个对话框的出现也只是在 DialogBoxParamA() 中,该函数的参数: 查资料可知,第四个参数是指向对话框过程的指针,即回调函数,函数返回的消息与之对应会发生相应跳转调用相应的函数。 可以看到,下方有一个 EndDialo
阅读全文
摘要:序列号保护机制: ① 序列号 = F(用户名) 将序列号与变换后的用户名作对比。非常容易被攻破。 ② F-1(序列号) = 用户名 将序列号进行逆变换,然后与用户名进行对比。穷举法,求逆算法,输入序列号然后得到用户名从而得到一对正确的输入。 ③对等函数检查 F1(用户名) = F2(序列号) ④二元
阅读全文
摘要:异常 ①SEH,以 DynAD_SEH.exe 程序为例 首先改变了 SEH 链,在 int 3 触发异常,此时注意栈中的 SEH 链,对对应的函数下断点即可暂停下来。 可以看到 EIP 被改变后,函数的执行流程即被改变。对 Contex(0xB6) 结构体中 EIP 指向的地址下断点。 此时直接就
阅读全文
摘要:函数 1.栈平衡 在 x64 环境下,某些汇编指令对栈顶的对齐有要求,因此在 Visual Studio 中,有时会出现申请了栈空间而不使用的情况。 2.启动函数 在 IDA 中找到启动函数的步骤: start -> _tmainCRTStartup -> 下翻找到 main 或者通过找到 exit
阅读全文
摘要:NtQueryInformationProcess( ) 将第二个参数设置为不同的特定值并调用该函数,就能将不同的数据写入到第三个参数。 该枚举类型与调试器探测有关的成员有 ProcessDebugPort ( 0x7 ) ,ProcessDebugObjectHandle ( 0x1E ),Pro
阅读全文
摘要:PEB 前面讲过,与反调试相关的 PEB 结构体成员有 ①PEB.BeingDebugged(+0x2) 修改该值为0即可 ②PEB.Ldr(+0xC)—— 仅适用于 Win XP 调试进程时,其内存区域会出现一些特殊标识,未使用的堆内存区域会全部填充着 0xFEEEFEEE ,PEB.Ldr 指向
阅读全文
摘要:SEH 是 Windows 操作系统提供的异常处理机制,在程序源代码中使用 __try __catch __finally 等关键字来具体实现。 进程在运行过程中发生异常,OS 会委托进程处理,但如果进程内没有具体实现 SEH ,那么 OS 会启动默认的异常处理机制,终止进程运行。如果有调试器,则先
阅读全文

浙公网安备 33010602011771号