|
[求助]如何比较简单的获取C++接口的某个方法的地址?
这个宏用于取成员变量的地址,Present是个成员函数。函数地址一般是固定的,直接用& 符号就行。 |
|
[求助]如何比较简单的获取C++接口的某个方法的地址?
offsetof(IDriect3Device9, Present) 这样写,第一个参数是类名,不是变量名。 |
|
[求助]如何比较简单的获取C++接口的某个方法的地址?
在VS2017中,这个宏定义在stddef.h 中 #if defined _MSC_VER && !defined _CRT_USE_BUILTIN_OFFSETOF
最后于 2021-3-6 12:56
被孤山散人编辑
,原因:
|
|
[求助]如何比较简单的获取C++接口的某个方法的地址?
sunbinjin [em_10] 你这是要疯啊。。。 我本意是求简单的,你搞这么大阵仗[em_2]。 你这代码我承认是能跑出想要的结果。 但是我就只是想求一种借编译器的自动结构取成员的位置而已,不是要这么算呀。 试试: offsetof(结构体, 成员) |
|
DLL文件导出函数调用
?GetMachineInfo@LicenseService@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V23@@Z 这个函数应该是 public LicenseService::GetMachineInfo(std::string &tmp); |
|
|
|
[翻译]C++ hackers guide中文版
谢辛苦付出 |
|
[求助]__asm汇编怎么jmp或call 外部地址
push eip move eax,[esp]
pop 就能获得当前的地址了。然后自己计算偏移。
最后于 2018-11-13 22:53
被孤山散人编辑
,原因:
|
|
|
|
[求助]不太清楚这个函数是怎样确定i值的范围的,求大侠帮个忙,真的非常感谢
defsub_400c41(i): ''' 只有8,12才返回,其他会退出 ''' if(4*(i>>2) != i or4*(i>>4) == i>>2or i >>4): #i必须是4的整数倍,但必须大于4,不能是16的整数倍,i必须小于16 print("invalid username or password"); return 0 result = (i>>3) if(not result): #,表达式,i>=8,为0,反之为1,当i<8,返回 print("invalid username or password") return0 return result for i inrange(20): ifsub_400c41(i): print(i)
最后于 2018-10-22 23:10
被孤山散人编辑
,原因:
|
|
[讨论]窝了几年,10年都做windows客户端安全方向的产品,发现工作不好找了。
客户端方向的,转嵌入式设备吧, 都是C/C++, 技能点还有保留些,其他方向很多技能点都白费了。。。。 |
|
[求助]手动将一个dll写入到了目标进程,并且开了一条线程,可 dll 没有并没有执行入口函数
DLL的OEP不是DLLMain, 如同exe的OEP不是main函数一样,你先检查下你的OEP对不对。另外,在window7系统中所有module的地址不再恒定,不同进程中系统库的地址不一定一直,你需要检查下你的import表修复的对不对。 一般传统的dll注入都是启动createremotethread启动loadlibrary,由系统加载dll来完成dllmain的调用。因为系统在执行dllmain之前会执行import表,依赖库的加载等工作。 |
|
[讨论]请教一下,现在还有谁会用WINDOWS编写驱动的?
win7 的启动有 加载未前面驱动的模式。 win10 的话,网上下载个驱动签名工具。 |
|
[求助]想研究一下注册表的操作,求注册表操作的开源库,谢谢!
WTL 封装的 CRegKey |
|
[原创]没有绝对安全的系统:写在AES 256破解之后
强。。。。。。。。。。。。 |
|
[讨论]PDF文件数字证书加密的安全性怎么样
理论上的安全性,不等于工程上的安全性。有些施工上的小细节可能就是你的机会。 比如1024/2048位RSA从理论上加密强度很高,但是如果这个密钥被口令来管理,那么口令的强度肯定比RSA密钥低很多个数量级。 另外,如果算法搞不定,最终进行结果对比时只是个简单的跳转,完全可以直接跳转。 |
|
[求助]一小段IDA抠出的代码,求转C。 若违规请删除
unsigned __int8 *v2; //v2是个long long型 8个字节的指针 const char *v3; //v3是个char * 指针 int v4; int v5; v3 = "ABCDEFG"; do { v4 = *(_DWORD *)v3; //把v3强制转为4个字节的整型指针,然后取值赋给v4,V4的值应该是0x44434241 v3 += 8; //V3的值+8, v5 = *(_DWORD *)&v3[0xFFFFFFFC]; // V3的值减4, 同样转换为4字节整型取值给v5, v5的值应该是0x00474645 *(_DWORD *)v2 = v4; //V2也转为4字节整形,在将v4的值赋给v2,则v2指向地址按由低到高依次为 0x41 0x42 0x43 0x44 *((_DWORD *)v2 + 1) = v5; //V2也转为4字节整形然后加1,在将v5的值赋给v2,则v2指向地址按由低到高依次为 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x00 v2 += 8; //V2指向下一个地址。 } 这个程序不考虑其他,只看代码就是一个快速复制内存的程序。因为单个字节的复制没有4个字节的速度快。memcpy等内存复制函数一般也是这么操作。强制指针转成整形进行整型赋值。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值