|
masm 中如何使用unicode字符?
\MASM32\Macros\ucMacros.asm宏就可以 |
|
WINDOWS控制台程序怎样接收WINDOWS消息?
控制台程序和一般的窗口程序区别不大, 系统会自动给它 分配一个控制台窗口而不会给窗口程序分配, 消息循环没有什么不同, 不过控制台程序一般不需要消息循环的 |
|
[求助]请问没有按钮的注册窗口如何下断????
因为每输入一个字符, 文本编辑控件就会向对话框过程发送WM_COMMAND消息, 所以可以利用这个消息断点 另外尽管不要按按钮, 程序还是照样要取文本编辑控件中的字符, 所以可以照常下GetWindowTextA/W之类的断点 |
|
|
|
[求助]哪位能发个VC写的补丁程序代码呀?
代码片断: //打开文件 HANDLE hFile = CreateFile("xxxx.xx", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE _SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile != INVALID_HANDLE_VALUE) //获得文件大小 int nFileSize = GetFileSize(hFile, NULL); //..处理文件长度信息 //........ //创建内存映射 HANDLE hMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE, NULL, NULL, NULL); if (!hMap) { LPVOID pFile = MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, NULL, NULL, NULL); if (!pFile) { //现在pFile指向文件开头内容, nFileSize是文件长度 //现在可以查找和替换了 //撤销内存映射 UnmapViewOfFile(pFile); } //撤销内存映射对象 CloseHandle(hMap); } //关闭文件 CloseHandle(hFile); } |
|
[求助]谁有编写包含窗体及其过程的DLL的例子或教程
Exe和Dll文件本来都是一样的PE文件, 只不过文件头中的属性位不同决定了它们的用途不同. 至于在Dll中创建窗口问题, 实际上和Exe文件没有太大的区别, 可以把exe文件的源代码原样拷贝并稍做修改后插入Dll的代码里. 或者是在Dll中创建一个线程建立一个窗口 |
|
[求助]这个指令怎么写?
push eax finit fild DWORD PTR [esp] fld ZeroPointFive;在数据段中定义好的一个数0.5 fadd fstp DWORD PTR [esp] pop eax |
|
GlobalLock的作用是什么?
如果申请的是可移动的内存, 当地址空间产生碎片时Windows可以把内存移动位置 |
|
GlobalLock的作用是什么?
使用GHND标志申请 的内存是可移动内存,只有用GlobalLock锁定以后才能使用 |
|
[求助]动态加载的dll中如何调用外部函数
Dll的重定位表被删除了吧 |
|
做Cracker时的,怎么会知道作者的感觉
措词不当之处已改正, 造成的误会还请qduwg大侠见谅. |
|
|
|
做Cracker时的,怎么会知道作者的感觉
最初由 qduwg 发布 抱歉, 我本意并没有针对某个或某些人, 如果造成了误会请见谅 这也仅仅是我的个人意见, 失误和疏漏难免 我只是觉得论坛讨论研究的话题应当更广泛一些, 不必拘泥于软件的算法分析 |
|
汇编初学的问个问题[调查][求助]
Zasm的那本书我看过 用的是TASM, 加上一个自动执行的shell MASM是MicroSoft公司的产品 Tasm是Borland公司的产品 语法上有一些差别 为了写32位的Windows程序一般用MASM |
|
我的OD出毛病了~谁来帮我看看!
是那个标签插件吧, 路径问题. 你在OD目录下创建一个名为labeler.def的空文件然后打开OD试试 |
|
新学汇编,请教一个试验的问题
看不懂做什么 怎么没见你向内存写东西啊? 那个循环只是把es:[0]的内容反复读入ax, 读入ax之后又没见做了什么处理...而且似乎es也没有初始化 mov dest, src 作用:把src的内容送入dest |
|
做Cracker时的,怎么会知道作者的感觉
乱扯几句, 各位不要扔砖头... 1. 看雪论坛是不允许发布破解补丁的, 当然不会见到补丁的发布 2. 楼主的心情我能够理解, 做一个软件是不容易的 3. 论坛的精华中, 仍然有不少的部分是有关算法分析的, 应当说这对于初学者是不错的参考, 但是这类帖子太多了也就意义不大了,都是千篇一律的注册算法分析和见招拆招. 而且这儿有不少会员也是软件作者, 看到自己的软件被破解, 心中终归不是滋味. 即使是一些文章没有明说是哪个软件. 我个人意见认为, 大家应当减少一些此类的帖子, 多一些真正的技术帖(不涉及某个特定软件的破解.) 这样才能真正促进加密与解密的发展, 又能减少不少麻烦. 如果大家实在手痒想找个东西来破解, 可以去找CrackMe. CrackMe不但可以避免版权纠纷, 而且破解重点突出, 同时也无需担忧不少软件里的所谓"恶意代码"(其实这多半是作者的无奈之举, 但是这样做只会把加密解密引入歧途), 何乐而不为? |
|
软件正常启动后在菜单中的注册下什么断点.谢意谢[求助]
最初由 vampire 发布 WndProc确实是很基本的啊 消息循环不是一切窗口程序的基础么? 学习Windows编程的时候, 接触到的第一个重要的回调函数就是WndProc 不过如果楼主没什么基础, 这个确实有点太深了, 抱歉, 毕竟我也是由一个菜鸟成长起来的. ********************************************************* 说详细一点吧, 一般注册都是在一个对话框中进行的, 程序要取得用户输入的信息,必然要借助于一些API, 以这些API为突破口就可以找到关键部分了. 另外如果注册错误有提示的话, 以这些提示信息入手也可以很快找到关键 如果程序注册部分不在主程序中...(嗯...什么意思? 程序调用其他东西来判断吗?) 一般会调用一个Dll中的函数, 不管怎样, 判断的代码终归是要执行的, 耐心点就会发现 |
|
[请教]Windows Media Player只能运行1个,怎样才能运行多个Media Player?
根据程序反汇编的结果, 应该没有那个选项 跳走后会试图显示已经运行的那个WMP窗口,然后就是HeapFree和ExitProcess了 10010F0处的那个call我看过了, 只是是检查一下是否安装成功, 如果不成功就跳走 |
|
[请教]Windows Media Player只能运行1个,怎样才能运行多个Media Player?
实际上根本不需要跟踪或下断点, 凭静态分析就知道了 ;程序入口点 010010C0 w> $ 55 push ebp 010010C1 . 8D6C24 88 lea ebp,dword ptr ss:[esp-78] 010010C5 . 81EC AC000000 sub esp,0AC 010010CB . 53 push ebx 010010CC . 33DB xor ebx,ebx 010010CE . 53 push ebx ; /pModule => NULL 010010CF . 895D 54 mov dword ptr ss:[ebp+54],ebx ; | 010010D2 . 895D 60 mov dword ptr ss:[ebp+60],ebx ; | 010010D5 . 895D 38 mov dword ptr ss:[ebp+38],ebx ; | 010010D8 . FF15 78100001 call dword ptr ds:[<&KERNEL32.GetMod>; \GetModuleHandleA 010010DE . 8945 34 mov dword ptr ss:[ebp+34],eax 010010E1 . 895D 58 mov dword ptr ss:[ebp+58],ebx 010010E4 . 895D 48 mov dword ptr ss:[ebp+48],ebx 010010E7 . 895D 3C mov dword ptr ss:[ebp+3C],ebx 010010EA . 895D 40 mov dword ptr ss:[ebp+40],ebx 010010ED . 895D 44 mov dword ptr ss:[ebp+44],ebx 010010F0 . E8 7F020000 call wmplayer.01001374 010010F5 . 84C0 test al,al 010010F7 . 0F85 E7060000 jnz wmplayer.010017E4 010010FD . 6A 01 push 1 ; /Priority = THREAD_PRIORITY_ABOVE_NORMAL 010010FF . FF15 68100001 call dword ptr ds:[<&KERNEL32.GetCur>; |[GetCurrentThread 01001105 . 50 push eax ; |hThread 01001106 . FF15 64100001 call dword ptr ds:[<&KERNEL32.SetThr>; \SetThreadPriority 0100110C . FF15 60100001 call dword ptr ds:[<&KERNEL32.GetPro>; [GetProcessHeap 01001112 . 3BC3 cmp eax,ebx 01001114 . 8945 64 mov dword ptr ss:[ebp+64],eax 01001117 . 0F84 0B070000 je wmplayer.01001828 0100111D . 56 push esi 0100111E . 57 push edi 0100111F . FF15 5C100001 call dword ptr ds:[<&KERNEL32.GetCom>; [GetCommandLineA 01001125 . 8945 74 mov dword ptr ss:[ebp+74],eax 01001128 . FF15 58100001 call dword ptr ds:[<&KERNEL32.GetVer>; kernel32.GetVersion 0100112E . 85C0 test eax,eax 01001130 . 8B3D 54100001 mov edi,dword ptr ds:[<&KERNEL32.lst>; kernel32.lstrlenA 01001136 . 0F8C F2060000 jl wmplayer.0100182E 0100113C > FF15 48100001 call dword ptr ds:[<&KERNEL32.GetCom>; [GetCommandLineW 01001142 > 8945 54 mov dword ptr ss:[ebp+54],eax ;*************************************************************** ;下面好戏开始 ;*************************************************************** ;看到这个字符串我想不用多说了吧 01001145 > 68 E0120001 push wmplayer.010012E0 ; /MutexName = "Microsoft_WMP_70_CheckForOtherInstanceMutex" 0100114A . 6A 01 push 1 ; |InitialOwner = TRUE 0100114C . 53 push ebx ; |pSecurity 0100114D . FF15 44100001 call dword ptr ds:[<&KERNEL32.Create>; \CreateMutexA 01001153 . 3BC3 cmp eax,ebx ;ebx = 0 01001155 . 8945 68 mov dword ptr ss:[ebp+68],eax 01001158 . 0F84 7B070000 je wmplayer.010018D9 ;水落石出 0100115E . FF15 10100001 call dword ptr ds:[<&KERNEL32.GetLas>; [GetLastError 01001164 . 3D B7000000 cmp eax,0B7;如果已经有实例运行 01001169 . 0F84 3B070000 je wmplayer.010018AA 0B7 = ERROR_ALREADY_EXISTS 跳了就Over了 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值