吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2806|回复: 16
收起左侧

[x64dbg Plugin] AyPlugin分析嵌套Call的所有Api调用

  [复制链接]
chen519 发表于 2025-10-5 01:44
本帖最后由 chen519 于 2025-10-5 01:53 编辑

本插件主要用于分析嵌套Call的Api调用
1.首先在需要分析Api的位置进行下段
2.然后选择结束的地址参考图1
3.点击分析即可
4.得到最终结果 (不支持分析壳Api)

https://wwzp.lanzoum.com/b0fpvfxaf
密码:8x0e
image.png
83f3ae4c-dd56-4960-beae-394f7b92bc7e.png

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
冥界3大法王 + 1 用心讨论,共获提升!
xiaoweng + 1 + 1 我很赞同!

查看全部评分

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

 楼主| chen519 发表于 2025-10-9 16:19
2025.10.9 1.1
新增模拟过程中显示地址
新增拷贝模糊特征码
模拟api使用参考最新模拟Api图解.png
修复模拟几率出现地址不对的情况
模拟Api请参考最新的图片解释
冥界3大法王 发表于 2025-10-7 10:24
本帖最后由 冥界3大法王 于 2025-10-7 10:30 编辑

@chen519
下面是我用 delphi开发的x64dbg插件的代码,用以实现对选中多行汇编指令,注释上当前VA有几处调用
有以下一个bug解决不了,当选中一行时结果是正确的,但当选中多行再执行时 $result 最后一个总是把最前面的注释内容全覆盖了,百思不解
加过延迟,同时也加过初始化变量(但发现这个是内置的,无法修改) 不知如何彻底解决此问题:
20251007_102945.gif
procedure TForm_FuDongTools.Call1Click(Sender: TObject);
var
  ClipboardText: string;
  Regex: TRegEx;
  Matches: TMatchCollection;
  Match: TMatch;
  AddressList: TStringList;
  X: Integer;
begin
  ClipboardText := Clipboard.AsText;                                           //获取剪贴板文本
  Regex := TRegEx.Create('^0[0-9A-F]{7,15}\s', [roMultiLine]);   //初始化正则表达式
  Matches := Regex.Matches(ClipboardText);                       //提取匹配项
  AddressList := TStringList.Create;                                       //存储地址
  try
    for Match in Matches do
      AddressList.Add(Trim(Match.Value));
    for X := 0 to AddressList.Count - 1 do                     //逐个显示地址
    begin
//      ShowMessage(AddressList[X]);                            //依次弹出每个地址
     // DbgCmdExec('varnew result$=0');
      DbgCmdExec(PAnsiChar(UTF8String('reffind "' + AddressList[X] + '"')));
      DbgCmdExec(PAnsiChar(UTF8String('commentset "' + AddressList[X] + '", {$result}个调用')));   //{ref.count()}
    end;
  finally
    AddressList.Free;
  end;
end;
冥界3大法王 发表于 2025-10-5 18:11
@chen519
下面是一点小建议,能不能再加一个菜单项:
日志窗口能不能输出:(类似下面这样的)

设断地址: 00C9E5CA
途经:
00E3E594          | E8 B5040000                  | call <JMP.&memset>                                          
00E3E56E          | FF15 88A1E800               | call dword ptr ds:[<IsProcessorFeaturePresent>]                              
结束地址(选中位置):00C9E5E7
m_h 发表于 2025-10-5 12:52
收藏。 看上去很好用 分析调用流程
xiaoweng 发表于 2025-10-5 13:53
大佬,那么快就出炉了啊!牛B克拉,谢谢分享
冥界3大法王 发表于 2025-10-5 15:48
本帖最后由 冥界3大法王 于 2025-10-5 15:50 编辑

@chen519
谁开发的?效果何在?
支持显示所有call列表输出吗?
支持几层嵌套?
冥界3大法王 发表于 2025-10-5 17:36
本帖最后由 冥界3大法王 于 2025-10-5 17:43 编辑
m_h 发表于 2025-10-5 12:52
收藏。 看上去很好用 分析调用流程
image.png
@m_h
随便找了个Snipaste2.08做测试:
是的,看着感觉似乎好像大概不错,试了五把,结果
两次搞崩溃了。。。
1次分析报错
还有两次有异常
不如调试跟踪使用的实在,至少知道哪是开始,哪里是结束,传递的可能参数是啥?


Microsoft (R) Windows Debugger Version 10.0.19494.1001 X86
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [X:\看雪论坛精华\西班牙网站下载的全套CrackMe教学\000-100\0-temp\1-Teoria Basica\x64dbg_2025-08-19\x32\minidump\dump-05102025_1731160655.dmp]
User Mini Dump File: Only registers, stack and portions of memory are available


************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*
Symbol search path is: srv*
Executable search path is:
Windows 10 Version 18363 MP (12 procs) Free x86 compatible
Product: WinNt, suite: SingleUserTS
10.0.18362.329 (WinBuild.160101.0800)
Machine Name:
Debug session time: Sun Oct  5 17:31:16.000 2025 (UTC + 8:00)
System Uptime: not available
Process Uptime: 0 days 0:08:16.000
................................................................
...........................................
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(2580.8f4): Access violation - code c0000005 (first/second chance not available)
For analysis of this file, run !analyze -v
eax=00000000 ebx=31ab9c38 ecx=514d081c edx=00000000 esi=31ab9bf0 edi=31ab9c00
eip=77032c4c esp=012a3514 ebp=012a3520 iopl=0         nv up ei pl nz na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000206
ntdll!NtGetContextThread+0xc:
77032c4c c20800          ret     8
0:020> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** WARNING: Unable to verify checksum for AyPlugin.dp32

KEY_VALUES_STRING: 1

    Key  : AV.Fault
    Value: Read

    Key  : Analysis.CPU.Sec
    Value: 0

    Key  : Analysis.DebugAnalysisProvider.CPP
    Value: Create: 8007007e on DESKTOP-RBR5316

    Key  : Analysis.DebugData
    Value: CreateObject

    Key  : Analysis.DebugModel
    Value: CreateObject

    Key  : Analysis.Elapsed.Sec
    Value: 29

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 134

    Key  : Analysis.System
    Value: CreateObject

    Key  : Timeline.Process.Start.DeltaSec
    Value: 496


CONTEXT:  (.ecxr)
eax=012a4d84 ebx=514d081c ecx=514d081c edx=00000000 esi=01320000 edi=06b9f558
eip=73ade350 esp=012a4d84 ebp=012a4dd4 iopl=0         nv up ei pl nz na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010206
vcruntime140!___longjmp_internal+0x30:
73ade350 8b2b            mov     ebp,dword ptr [ebx]  ds:002b:514d081c=????????
Resetting default scope

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 73ade350 (vcruntime140!___longjmp_internal+0x00000030)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 514d081c
Attempt to read from address 514d081c

PROCESS_NAME:  x32dbg.exe

READ_ADDRESS:  514d081c

ERROR_CODE: (NTSTATUS) 0xc0000005 - 0x%p            0x%p                    %s

EXCEPTION_CODE_STR:  c0000005

EXCEPTION_PARAMETER1:  00000000

EXCEPTION_PARAMETER2:  514d081c

STACK_TEXT:  
012a4dd4 6d335596 514d081c 00000001 00000000 vcruntime140!___longjmp_internal+0x30
WARNING: Stack unwind information not available. Following frames may be wrong.
012a4de4 6d335540 01320000 6d329677 01320000 unicorn!uc_vmem_write+0x40886
00000000 00000000 00000000 00000000 00000000 unicorn!uc_vmem_write+0x40830


FAULTING_SOURCE_LINE:  D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\i386\longjmp.asm

FAULTING_SOURCE_FILE:  D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\i386\longjmp.asm

FAULTING_SOURCE_LINE_NUMBER:  95

FAULTING_SOURCE_CODE:  
No source found for 'D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\i386\longjmp.asm'


SYMBOL_NAME:  vcruntime140!___longjmp_internal+30

MODULE_NAME: vcruntime140

IMAGE_NAME:  vcruntime140.dll

STACK_COMMAND:  ~20s ; .ecxr ; kb

FAILURE_BUCKET_ID:  INVALID_POINTER_READ_c0000005_vcruntime140.dll!___longjmp_internal

OSPLATFORM_TYPE:  x86

OSNAME:  Windows 10

FAILURE_ID_HASH:  {d1d8850e-188a-5f92-bbb5-4418c041b201}

Followup:     MachineOwner
---------

 楼主| chen519 发表于 2025-10-5 17:50
冥界3大法王 发表于 2025-10-5 17:36
@m_h
随便找了个Snipaste2.08做测试:
是的,看着感觉似乎好像大概不错,试了五把,结果

需要到eip的地址 然后才能进行模拟 参考压缩包图1 没到位置分析寄存器是错误的就会崩溃
 楼主| chen519 发表于 2025-10-5 17:51
冥界3大法王 发表于 2025-10-5 17:36
@m_h
随便找了个Snipaste2.08做测试:
是的,看着感觉似乎好像大概不错,试了五把,结果

也可以把你测试的exe发我我看看具体什么原因崩溃
冥界3大法王 发表于 2025-10-5 17:54
本帖最后由 冥界3大法王 于 2025-10-5 17:59 编辑
chen519 发表于 2025-10-5 17:50
需要到eip的地址 然后才能进行模拟 参考压缩包图1 没到位置分析寄存器是错误的就会崩溃

能不能录制个视频,提供对应的软件表演下?

上面所说下完断,
选个结束的位置

再选择菜单里的==》 Uicom_API
还用人为再按F9吗?
细节再详细些。

冥界3大法王 发表于 2025-10-5 17:57
断点已设置在 00C9E5CA !
线程 11428 退出
断点已设置在 00E3D24C !
线程 2620 退出
所有断点都已删除!
模拟执行完成 Invalid memory mapping (UC_ERR_MAP)
Api->IsProcessorFeaturePresent

00C9E460 (13231200d) <snipaste.sub_C9E460>

这次好像对了。。。
 楼主| chen519 发表于 2025-10-5 17:58
冥界3大法王 发表于 2025-10-5 17:54
能不能录制个视频,提供对应的软件表演下?

这样就行了 到了位置直接模拟即可 不需要按其他的
1.png
2.png

免费评分

参与人数 2吾爱币 +5 热心值 +2 收起 理由
唐小样儿 + 1 + 1 我很赞同!
冥界3大法王 + 4 + 1 终于整明白了。。。

查看全部评分

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

本版积分规则

返回列表

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

GMT+8, 2026-5-19 19:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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