windbg 栈处理函数调用的过程(做一次记录)

在这里插入图片描述

main函数的汇编

 HiStack!main:
00e51080 55             push    ebp
00e51081 8bec           mov     ebp, esp
00e51083 6a7a           push    7Ah
00e51085 e886ffffff     call    HiStack!Proc (00e51010)
00e5108a 5d             pop     ebp
00e5108b c3             ret     
00e5108c cc             int     3
00e5108d cc             int     3
00e5108e cc             int     3
00e5108f cc             int     3

Proc的汇编函数

00e51010 55             push    ebp
00e51011 8bec           mov     ebp, esp
00e51013 51             push    ecx
00e51014 8b4508         mov     eax, dword ptr [ebp+8]
00e51017 8945fc         mov     dword ptr [ebp-4], eax
00e5101a 8b4dfc         mov     ecx, dword ptr [ebp-4]
00e5101d 51             push    ecx
00e5101e 8b5508         mov     edx, dword ptr [ebp+8]
00e51021 52             push    edx
00e51022 6890f1e800     push    offset HiStack!`string' (00e8f190)
00e51027 e864000000     call    HiStack!printf (00e51090)
00e5102c 83c40c         add     esp, 0Ch
00e5102f 8b4508         mov     eax, dword ptr [ebp+8]
00e51032 0faf45fc       imul    eax, dword ptr [ebp-4]
00e51036 8be5           mov     esp, ebp
00e51038 5d             pop     ebp
00e51039 c20400         ret     4

Windbg 分析过程

Microsoft ® Windows Debugger Version 10.0.20153.1000 X86
Copyright © Microsoft Corporation. All rights reserved.

CommandLine: D:\advdbg\Adwdbcode_tools\swdbgbk_src\bin\Release\HiStack.exe

************* Path validation summary **************
Response Time (ms) Location
OK D:\mysymbols
Symbol search path is: D:\mysymbols
Executable search path is:
*** WARNING: Unable to verify checksum for HiStack.exe
ModLoad: 00e50000 00e9e000 HiStack.exe
*** ERROR: Module load completed but symbols could not be loaded for ntdll.dll
ModLoad: 770f0000 7728a000 ntdll.dll
*** ERROR: Module load completed but symbols could not be loaded for C:\Windows\SysWOW64\KERNEL32.DLL
ModLoad: 76930000 76a10000 C:\Windows\SysWOW64\KERNEL32.DLL
*** ERROR: Module load completed but symbols could not be loaded for C:\Windows\SysWOW64\KERNELBASE.dll
ModLoad: 76db0000 76faf000 C:\Windows\SysWOW64\KERNELBASE.dll
(4c78.4ef0): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=0117f000 ecx=f8d50000 edx=00000000 esi=013e22b8 edi=770f687c
eip=7719ecc2 esp=012ff5ac ebp=012ff5d8 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
ntdll!LdrpDoDebuggerBreak+0x2b:
7719ecc2 cc int 3

0:000> g
Breakpoint 0 hit
eax=013e8d68 ebx=0117f000 ecx=00000000 edx=742f4c58 esi=00e99748 edi=013e6a28
eip=00e51080 esp=012ffab8 ebp=012ffafc iopl=0         nv up ei pl nz na po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
HiStack!main:
00e51080 55              push    ebp
0:000> r ebp,esp
ebp=012ffafc esp=012ffab8在这里插入代码片
0:000> !teb
TEB at 01182000
    ExceptionList:        012ffaec
    StackBase:            01300000
    StackLimit:           012fd000
    SubSystemTib:         00000000
    FiberData:            00001e00
    ArbitraryUserPointer: 00000000
    Self:                 01182000
    EnvironmentPointer:   00000000
    ClientId:             00004c78 . 00004ef0
    RpcHandle:            00000000
    Tls Storage:          0118202c
    PEB Address:          0117f000
    LastErrorValue:       0
    LastStatusValue:      0
    Count Owned Locks:    0
    HardErrorMode:        0
0:000> kbn
 # ChildEBP RetAddr      Args to Child              
00 012ffab4 00e5128f     00000001 013e6a28 013e8d68 HiStack!main [d:\advdbg\adwdbcode_tools\swdbgbk_src\chap22\histack\histack.cpp @ 14] 
01 (In
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本人曾经是速度追求极端分子,曾经花过三四年时间,潜心把易语言 的一些核心命令以及一些自己曾经项目上用到的一些功能,为了追求速度最大化,基本全部都用汇编了一遍 今天开源的这个模块只是本人手中的一小部分汇编源码,但是里面也有很多东西需要跟你们介绍一下. 1.核心必备程序集 这部分,完全是通过汇编解析系统几个核心dll的命令 能达到免申明dll命令,直接调用,里面很多函数是基本跳过dll本身的函数入口,直接push参数call到驱动入口处(当初为了追踪这些dll特意用虚拟机windbg了xp系统大部分函数,有懂的可以去看看里面的KiZwOpenProcess 函数 ),为此可以躲过程序在一些调试软件里面被API断点拦截,还有一些拦截鼠标键盘模拟的安全软件或者游戏反辅助的检测.(当然以前这招有效,现在有没有效,没测了),里面还有一个内存加载dll功能,实现dll不落地直接使用里面的dll命令兼容任何系统.这一部分介绍有点多,省这点继续看下一个介绍 2图像处理/找图 通过纯汇编,创建位图,截取窗口位图,汇编二值化位图,汇编浮雕位图,汇编位图去杂点等等这些命令,非常实用在位图识别,位图找字,找色等,速度我不敢说第一,但是想求你们找一个第一把我比下去.找图功能方面,都是100%的纯汇编代码,无任何杂质.注意一下缺点,就是理论上只能处理24位 32位的位图 3鼠键操作 这块也是通过汇编方式,绕过dll函数,直达驱动外壳调用.一般软件断点不到鼠键函数 其他一些汇编命令,虽然功能不强,但是也比较常用,或者重复使用次数比较多,速度上能节省一点,那就说明软件运行就更快一些.个人这些命令之前,基本都拿易语言对应的命令测试过速度,大部分都是有很明显的速度提升的.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值