欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

新版本用DrawTextA还是可以,不过有更方便的方法 (1千字)

新版本用DrawTextA还是可以,不过有更方便的方法 (1千字)

反汇编picobj41.dll,看到下面几个含义明显的输出函数。这几个都是C++的类成员函数,函数名均为AddDemoLabel( ),前两个是CImageInterface类的重载函数,后两个是CImageProcessor类的重载函数):
Addr:10003AA0 Ord:  42 (002Ah) Name: ?AddDemoLabel@CImageInterface@@QAEHH@Z
Addr:10003AC0 Ord:  43 (002Bh) Name: ?AddDemoLabel@CImageInterface@@SAHPAUHDC__@@H@Z
Addr:10006D20 Ord:  44 (002Ch) Name: ?AddDemoLabel@CImageProcessor@@SAHPAPAXH@Z
Addr:100068E0 Ord:  45 (002Dh) Name: ?AddDemoLabel@CImageProcessor@@SAHPAUHDC__@@HJJ@Z
再反汇编AutoGraphicsHTML.exe,看它在哪里引用了这些函数,结果在import table里没找到上述函数,说明该exe不是直接调用这些函数的。
在该dll中查找文本串“AddDemoLabel”,发现只有一处是在上述几个函数的函数体之外调用它们的(在CImageSaver类的BeforeSave( )函数中):
Exported fn(): ?BeforeSave@CImageSaver@@QAEHPAPAXHHHHHHHMJUtagRECT@@H@Z - Ord:0030h
:10007B69 8B442410                mov eax, dword ptr [esp+10]
:10007B6D 85C0                    test eax, eax
:10007B6F 740B                    je 10007B7C
:10007B71 6A01                    push 00000001
:10007B73 56                      push esi
* Reference To: PicObj41.?AddDemoLabel@CImageProcessor@@SAHPAPAXH@Z
                                  |
:10007B74 E8A7F1FFFF              call 10006D20
:10007B79 83C408                  add esp, 00000008
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10007B6F(C)
|
:10007B7C 8B442444                mov eax, dword ptr [esp+44]
显然只要把CS:10007B6F处的je改为jmp即可(74改为EB)。
总结:不要使用含义明显的串;程序的保护部分越符合结构化的特点越容易被破掉。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功