|
[求助]对付扭曲变换有什么绝招没?
D - U - M - M - Y |
|
|
|
[分享]LoadDll.exe - 100%可以停在入口
放在ollydbg.exe同目录下,不是单独使用的 |
|
[分享]LoadDll.exe - 100%可以停在入口
怎么这么多人问与JGL的区别? 我这里有3个版本的loaddll.exe(除了我的),JGL的是哪一个? 我只知道,手上的几个loaddll.exe,要不无法停到入口,要不能停入口但是无法载入 |
|
[分享]LoadDll.exe - 100%可以停在入口
如果哪个dll有问题,上传一下样本,谢谢 |
|
[求助]哪位有正版的vmprotect,帮个忙
自带的,脱壳不难的,难的还是修复VM |
|
[求助]对付扭曲变换有什么绝招没?
支持楼上的写简化器 |
|
|
|
|
|
[求助]哪位有正版的vmprotect,帮个忙
老k给我的unpackme,我一看,发现其实是vmp 1.6x |
|
[原创]mimisys pack v0.1
太膜拜了, 参观偶偶像的偶像的偶像的偶像的mimi |
|
|
|
|
|
|
|
[原创]Hook Api lib 0.5 - 2008.04.16更新
/* ////////////////////////////////////////////////////////////////////////// HookApi 0.5 thanks to xIkUg ,sucsor by 海风月影[RCT] , eIcn#live.cn 2008.04.15 |
|
|
|
[原创]Hook Api lib 0.5 - 2008.04.16更新
用SetWindowHookEx挂钩子,搜一下MSDN吧 |
|
[原创]Hook Api lib 0.5 - 2008.04.16更新
先说第4个问题,是个小BUG,我忘记加上了,后面要加一句return TRUE; 第3个问题,是个编译好的静态链接库,压缩包里面有源代码,可以直接忽略 第2个问题,是的,只对本进程有效,如果要全局,可以写一个dll全局注入即可 第一个问题 SetOnBefore的意思是在调用api前先执行指定的hookproc SetOnAfter的意思是在调用完api后执行指定的hookproc 现在已经去掉了上面2个过程,直接指定一个hookproc pHookEnv = InstallHookApi("Kernel32.dll", "DeviceIoControl", My_DeviceIoControl); 然后声明一下,详见一下说明 typedef BOOL (WINAPI __pfnDeviceIoControl)( HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped ); BOOL WINAPI My_DeviceIoControl( DWORD RetAddr, __pfnDeviceIoControl pfnDeviceIoControl, HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped ); 这时候,你的My_DeviceIoControl可以灵活地自己调用原始的DeviceIoControl这个过程 ★★注意: 1,如果在HookProc中自己不调用API(pfnXXXXX()),那么返回后,Stub是不会调用的,切记! 2,当HookProc中使用UnInstallHookApi卸载完后就不能用第二个参数来调用API了(pfnXXXX()),切记! 用法如下: BOOL WINAPI My_DeviceIoControl( DWORD RetAddr, __pfnDeviceIoControl pfnDeviceIoControl, HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped ) { ... if (XXXX) { ... pfnDeviceIoControl(XXXXXXX); ... } ... return xxx; } 如果想实现SetOnBefore,就在自己的hookproc最后调用pfnDeviceIoControl,比如 BOOL WINAPI My_DeviceIoControl( DWORD RetAddr, __pfnDeviceIoControl pfnDeviceIoControl, HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped ) { ... if (XXXX) { ... } ... return pfnDeviceIoControl(hDevice,dwIoControlCode,lpInBuffer,nInBufferSize,lpOutBuffer,nOutBufferSize,lpBytesReturned,lpOverlapped); } 如果想实现SetOnAfter,那么就先调用pfnDeviceIoControl,然后再写自己的代码 BOOL WINAPI My_DeviceIoControl( DWORD RetAddr, __pfnDeviceIoControl pfnDeviceIoControl, HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped ) { DWORD dwRet; dwRet = pfnDeviceIoControl(hDevice,dwIoControlCode,lpInBuffer,nInBufferSize,lpOutBuffer,nOutBufferSize,lpBytesReturned,lpOverlapped); if (XXXX) { ... } ... return dwRet; } 当然也可以放在中间调用 你可以在自己的My_DevideIoControl里面判断返回地址是不是在某个模块中,然后记录下需要记录的参数 上面看完后第5个问题应该没什么难度了吧 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值