腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
Eureka的技术时光轴
专栏作者
举报
338
文章
685469
阅读量
39
订阅数
订阅专栏
申请加入专栏
全部文章(338)
编程算法(98)
windows(46)
c++(29)
api(29)
linux(29)
打包(25)
单片机(22)
ide(21)
http(21)
网络安全(21)
python(15)
node.js(15)
javascript(14)
html(14)
android(14)
delphi(14)
https(14)
tcp/ip(13)
kernel(12)
汇编语言(11)
虚拟化(11)
c#(10)
存储(10)
socket编程(10)
java(8)
开源(8)
php(7)
xml(7)
数据库(7)
sql(7)
github(7)
shell(7)
udp(7)
dll(7)
git(6)
文件存储(6)
gcc(6)
数据分析(6)
数据结构(6)
c 语言(5)
unix(5)
数据加密服务(5)
actionscript(4)
json(4)
webview(4)
ubuntu(4)
mongodb(4)
ssh(4)
gui(4)
kvm(4)
安全(4)
file(4)
io(4)
makefile(3)
access(3)
apache(3)
命令行工具(3)
云数据库 MongoDB(3)
SSL 证书(3)
腾讯云测试服务(3)
云推荐引擎(3)
网站(3)
微信(3)
device(3)
function(3)
list(3)
进程(3)
内核(3)
bash(2)
arm(2)
ruby on rails(2)
windows server(2)
centos(2)
bash 指令(2)
apt-get(2)
图像处理(2)
面向对象编程(2)
gradle(2)
nat(2)
add(2)
app(2)
base64(2)
bug(2)
fs(2)
handle(2)
hook(2)
image(2)
input(2)
int(2)
ode(2)
point(2)
project(2)
return(2)
tcp(2)
win10(2)
windbg(2)
wmi(2)
编程(2)
编译(2)
程序(2)
内存(2)
数据(2)
系统(2)
虚拟机(2)
原理(2)
源码(2)
指针(2)
ios(1)
go(1)
lua(1)
.net(1)
regex(1)
angularjs(1)
react(1)
css(1)
jquery(1)
android studio(1)
qt(1)
硬件开发(1)
访问管理(1)
NAT 网关(1)
消息队列 CMQ 版(1)
检测工具(1)
express(1)
缓存(1)
压力测试(1)
爬虫(1)
yum(1)
dns(1)
kotlin(1)
flash(1)
rpc(1)
notepad ++(1)
kafka(1)
sdk(1)
验证码(1)
absolute(1)
action(1)
apply(1)
asm(1)
background(1)
block(1)
bmp(1)
build(1)
byte(1)
class(1)
client(1)
code(1)
command(1)
data(1)
debug(1)
debugging(1)
default(1)
dt(1)
dump(1)
dynamic(1)
error(1)
eval(1)
exception(1)
extern(1)
filter(1)
fixed(1)
flags(1)
glib(1)
glibc(1)
implementation(1)
include(1)
init(1)
ip(1)
join(1)
ld(1)
libc(1)
load(1)
loader(1)
masm(1)
max(1)
message(1)
module(1)
nasm(1)
navigator(1)
null(1)
object(1)
opacity(1)
package(1)
parameters(1)
paste(1)
pid(1)
position(1)
proc(1)
procedure(1)
public(1)
require(1)
runtime(1)
set(1)
shift(1)
simulation(1)
ssl(1)
status(1)
sum(1)
sys(1)
system(1)
tcpclient(1)
text(1)
txt(1)
union(1)
usb(1)
vnc(1)
vsix(1)
x86(1)
xilinx(1)
zip(1)
闭包(1)
遍历(1)
变量(1)
编译器(1)
博客(1)
测试(1)
产品(1)
登录(1)
服务(1)
工具(1)
函数(1)
华为(1)
计算机(1)
加密(1)
脚本(1)
开发环境(1)
快捷键(1)
连接(1)
乱码(1)
面试(1)
权限(1)
事件(1)
手机(1)
调试(1)
语法(1)
装饰器(1)
作用域(1)
搜索文章
搜索
搜索
关闭
如何调试VCL源代码
http
打包
delphi
html
http://www.winu.cn/space-14160-do-blog-id-13766.html
战神伽罗
2020-05-25
629
0
delphi版插apc杀进程驱动源码
delphi
从c代码转的,备份一下,里面有硬编码 unit MyDriver; {$HINTS OFF} {$WARNINGS OFF} interface uses nt_status, ntoskrnl, native, winioctl, fcall, macros; type TKILL = record PID: DWORD; XP_PsGetNextProcessThread: dword; end; PKILL = ^TKILL; const DeviceName = '\Device\KPTes
战神伽罗
2019-11-13
1.1K
0
Delphi中System.Zip中文文件名乱码解决
delphi
system
zip
乱码
面试
新版本Delphi中自带的Zip单元System.Zip使用很方便,但是在压缩文件中包含中文路径或文件名时解压后是乱码,这一点儿确实挺烦人。
战神伽罗
2019-08-20
1.3K
0
delphi各个版本编译开关值
delphi
delphi各个版本编译开关值 {$IFDEF VER80} - Delphi 1 {$IFDEF VER90} - Delphi 2 {$IFDEF VER100} - Delphi 3 {$IFDEF VER120} - Delphi 4 {$IFDEF VER130} - Delphi 5 {$IFDEF VER140} - Delphi 6 {$IFDEF VER150} - Delphi 7 {$IFDEF VER160} - Delphi 8 {$IFDEF VER170} - Delphi 2005 {$IFDEF VER180} - Delphi 2006 {$IFDEF VER180} - Delphi 2007 {$IFDEF VER185} - Delphi 2007 {$IFDEF VER200} - Delphi 2009 {$IFDEF VER210} - Delphi 2010 {$IFDEF VER220} - Delphi XE {$IFDEF VER230} - Delphi XE2 {$IFDEF VER240} - Delphi XE3 {$IFDEF VER250} - Delphi XE4 {$IFDEF VER260} - Delphi XE5
战神伽罗
2019-07-24
974
0
手动脱壳VMP
delphi
编程算法
node.js
个人在学习脱VMP加壳的过程中总结的一个步骤。按照这个步骤,包括VMP1.6—2.0在内应该有70%-80%能脱壳。脱不了的也别问我,我也刚开始学习。我还想找人问呢。 想要脱VMP的壳,首要工作当然是要找一个强OD啦!至于是什么版本的OD自己多试验几个,网上大把大把的,一般来说只要加载了你想脱的VMP加壳程序不关闭都可以。 其次就是StrongOD.dll这个插件了,现在用的比较多的就是海风月影,同样网上也是大把大把的。下载回来后复制到你的OD程序所在的文件夹里面的plugin里。StrongOD的设置选项搞不懂就全部打钩。 接下来要做的工作就是搞清楚我们要脱壳的程序编程的语言了,可以用PEID或者fastscanner查看,如果在这里看不到也可以在OD载入以后通过里面的字符串判断了。例如VB的程序会出现MSVB----/VC的会出现MSVC---等等。这些都是程序运行所需要的windows链接文件。 做完这些预备工作接下来当然是用OD载入文件啦。文件载入后在反汇编窗口CTRL+G搜索VirtualProtect(注意V跟P要大写,至于为什么要搜索这个别问我)。一般来说搜索的结果会出现以下的类似: 7C801AE3 E8 75FFFFFF call kernel32.VirtualProtectEx 我们在这里下F2断点。然后F9运行到我们下的这个断点。接下来我们就要注意观察堆栈窗口了。一般来说当我们F9运行到我们上面下的断点的时候在堆栈窗口会出现以下类似: 0012F66C 00401000 |Address = TradeCen.00401000 0012F670 000280D1 |Size = 280D1 (164049.) 0012F674 00000004 |NewProtect = PAGE_READWRITE 0012F678 0012FF98 \pOldProtect = 0012FF98 我们要注意观察的就是在接下来我们F9运行的时候,ADDRESS和NEWPROTECT这两行的变化。按F9-速度别太快,直到NewProtect项变为PAGE_READONLY,这时候程序就释放完毕了。 0012F66C 0042A000 |Address = TradeCen.0042A000 0012F670 000069DE |Size = 69DE (27102.) 0012F674 00000002 |NewProtect = PAGE_READONLY 0012F678 0012FF98 \pOldProtect = 0012FF98 现在可以取消刚才我们下的断点了。接下来就是找OEP了。找OEP的时候我个人的一个经验就是OEP一般就在接近上面的ADDRESS地址的附近。例如上面的地址是0042A000,我一般就在这个基础上减到420000搜索程序的特征段,当然我们也可以直接跳到401000开始搜索。虽然我们搜索的范围比较大,但是因为我们搜索的是命令序列,所以工作量还不是很大。 废话不多说,CTRL+G--上面的地址,然后CTRL+S 查找命令序列。命令序列的内容就是我们用查到的编程语言的特征段。我们可以在特征段里面选择两三句固定不变的命令查找。例如VC++6.0的特征段是 0046C07B U> 55 push ebp 0046C07C 8BEC mov ebp,esp 0046C07E 6A FF push -1 0046C080 68 18064C00 push UltraSna.004C0618 0046C085 68 F8364700 push UltraSna.004736F8 0046C08A 64:A1 00000000 mov eax,dword ptr fs:[0] 0046C090 50 push eax 0046C091 64:8925 00000000 mov dword ptr fs:[0],esp 0046C098 83EC 58 sub esp,58 0046C09B 53 push ebx 0046C09C 56 push esi 0046C09D 57 push edi 我们可以只搜索前三条命令。找到符合前三条命令的,我们在对照接下来的命
战神伽罗
2019-07-24
3.5K
0
Delphi条件编译时编译器的版本号
delphi
VER180 : Delphi 10.0 CodeGear 2006/2007 VER185 : Delphi 11.0 CodeGear 2007 VER190 : Delphi 12.0 CodeGear 2008 VER200 : Delphi 13.0 CodeGear 2009 VER210 : Delphi 14.0 Embarcadero RAD Studio 2010 VER220 : Delphi 15.0 Embarcadero RAD Studio XE VER230 : Delphi 16.0 Embarcadero RAD Studio XE2 VER240 : Delphi 17.0 Embarcadero RAD Studio XE3 VER250 : Delphi 18.0 Embarcadero RAD Studio XE4| VER260 : Delphi 19.0 Embarcadero RAD Studio XE5 VER270 : Delphi 20.0 Embarcadero RAD Studio XE6 VER280 : Delphi 21.0 Embarcadero RAD Studio XE7 VER290 : Delphi 22.0 Embarcadero RAD Studio XE8
战神伽罗
2019-07-24
933
0
对vc++类和对象的逆向研究
delphi
c#
编程算法
经过反编译动态调试,vcpp的类实际上就是struct,跟delphi不同,它没有类头,而且所有的函数都直接放在函数表里头,跟普通的函数一样混在一起。而成员变量,则直接就在对象头开始算起,成员变量的结尾是0xfdfdfdfd,如果没有成员变量,则对象的开头就是0xfdfdfdfd。
战神伽罗
2019-07-24
469
0
delphi枚举wmi
delphi
wmi
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,SiMath,SimEncrypt, StdCtrls,ActiveX,ComObj,JwaWbemCli; type TForm1 = class(TForm) Button1: TButton; Memo: TMemo; Button2: TB
战神伽罗
2019-07-24
1.9K
0
如何解决在DLL的入口函数中创建或结束线程时卡死
api
delphi
dll
loader
point
通常情况下并不会使用到DLL的MAIN函数,因为delphi的框架已经把Main函数隐藏起来
战神伽罗
2019-07-24
3.6K
0
获取Delphi所有类的类信息
delphi
{ Delphi遍历进程中所有Class的TypeInfo,即便是在implementation中的class或者其他 class的private的子class. 一般普通EXE中的TypeInfo存放在PAGE_EXECUTE_*的内存中,而BPL则存放在PAGE_READ_WRITE的内存中. 所以我们要做的是遍历可执内存的内存片,然后找出TypeInfo的特征. 这里我是只找Class的类型信息,特征是tkClass,classname合法, 沿着typedata中的
战神伽罗
2019-07-24
1.7K
0
x64调用约定
delphi
单片机
x64网上说rcx,rdx,r8,r9,堆栈,但实际上,堆栈必须预留够相应的参数大小。比如传入rcx,rdx两个参数,则调用入口(call指令处rsp)必须上面要留2个寄存器大小的地址。而超过的部分,也就是需要用堆栈来传递的部分,则从调用入口处向上偏移4个处传递。也就是说前4个参数虽然用寄存器,但是堆栈的位置必须预留出来,以便于函数体内调用。难怪现在gcc编译出来的代码不使用压栈方式,而是直接改堆栈数据了。
战神伽罗
2019-07-24
957
0
delphi使用bcb的c++ .obj .o,lazarus x64内联汇编,att和intel
delphi
编程算法
c++
regex
The {$ASMMODE XXX} directive informs the compiler what kind of assembler it can expect in an asm block. The XXX should be replaced by one of the following:
战神伽罗
2019-07-24
3.2K
0
【Delphi】 Thread.Queue与Synchronize的区别
delphi
编程算法
http
前话: 其实大家要学会看源码, 我接下来要说的这些东东,与其等别人讲,还不如自己搞几个代码试一下,印象还深刻点 TThread.Queue和TThread.Synchronize的区别,
战神伽罗
2019-07-24
1.7K
0
windows堆栈研究以及线程安全
c++
delphi
gcc
fs
hook
由于hook时要线程安全,考虑每条线程的堆栈放对应的数据,于是找了一下网上的说法是默认2M,实际情况却不是这样的。在win10下,使用gcc,vc++,delphi,3种编译器默认编译进行了测试。
战神伽罗
2019-07-24
439
0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档