|
|
|
globalalloc函数分配内存问题
所有的代码及程序都在里面,多谢帮忙阿 |
|
globalalloc函数分配内存问题
代码太长,还是放后面包包里吧 |
|
重定位问题
我自己写了段程序,试着这样改了一下,居然能成功,不知道复杂点程序能搞定不,试试再说 |
|
重定位问题
不想额外增加一个有可执行属性的其他节,也不想让代码节有可写属性,不想让DEP起作用 |
|
shellcode里除了用ShellExecute和WinExec还有什么办法运行程序?
自己写一个loader,哈哈,那这个shell就够大了--! |
|
IMAGE_IMPORT_BY_NAME结构小疑问
额,真是这样,od左右对应的不齐阿,没想到去数这个.. |
|
汇编代码长度问题
知道是哪里出问题了,invoke函数在处理标号作为参数的时候有点小问题 start: mov eax,CodeLength push CodeLength push offset szTxt push offset Buffer call wsprintf invoke wsprintf,offset Buffer,offset szTxt,CodeLength invoke MessageBox,NULL,offset Buffer,NULL,MB_OK invoke ExitProcess,NULL end start 看生成的汇编代码 00401088 >/$ B8 88000000 mov eax, 88 0040108D |? 68 88000000 push 88 00401092 |? 68 14204000 push 00402014 ; ASCII "%d" 00401097 |? 68 00304000 push 00403000 0040109C |? E8 35000000 call <jmp.&user32.wsprintfA> 004010A1 |? 68 A1000000 push 0A1 004010A6 |? 68 14204000 push 00402014 ; ASCII "%d" 004010AB |. 68 00304000 push 00403000 ; |Text = "" 004010B0 |. E8 21000000 call <jmp.&user32.wsprintfA> ; |hOwner 004010B5 |? 83C4 0C add esp, 0C 004010B8 |? 6A 00 push 0 004010BA |? 6A 00 push 0 004010BC |? 68 00304000 push 00403000 004010C1 |? 6A 00 push 0 004010C3 |? E8 14000000 call <jmp.&user32.MessageBoxA> 004010C8 |? 6A 00 push 0 |
|
汇编代码长度问题
"如果楼主那一大群定义在内存中的存储位置不在401000与00401683之间,那么说明就是这个原因,楼主你验证下哈。" 都在里面的, 如果不在里面,我后面重定位后都无法取得对应的数据的,code.asm里面的程序代码是跑不起来的 |
|
汇编代码长度问题
我自己重新试了一下, CodeStart equ this byte xxxx xxxx ..... xxxx CodeEnd equ this byte CodeLength = CodeEnd - CodeStart 这种写法 在大多数情况下 codelength得到的值是正确的, 但我碰到的情况好像是个例外,不正确. 大家可是试试我的程序,看看哪里出了问题, .data? Buffer db 1024 dup (?) .const szTxt db '%d',0 .code include code.asm start: invoke wsprintf,offset Buffer,offset szTxt,CodeLength invoke MessageBox,NULL,offset Buffer,NULL,MB_OK invoke ExitProcess,NULL end start code.asm内容形式如下: CodeStart equ this byte xxxxx ..... CodeEnd equ this byte CodeLength = CodeEnd - CodeStart code.asm经汇编生成代码如下: 00401000 . 90 nop 00401001 ? 90 nop 00401002 ? 0000 add byte ptr [eax], al 00401004 ? 0000 add byte ptr [eax], al 00401006 ? 0000 add byte ptr [eax], al 00401008 ? 0000 add byte ptr [eax], al ........................... 省略若干 0040167C |. 1040 00 adc byte ptr [eax], al 0040167F |? 59 pop ecx 00401680 |? 90 nop 00401681 |? 90 nop 00401682 |. 90 nop 00401683 |. 90 nop 00401684 >|. 68 CD070000 push 7CD 00401689 |? 68 14204000 push 00402014 ; ASCII "%d" 0040168E |? 68 00304000 push 00403000 00401693 |? E8 20000000 call <jmp.&user32.wsprintfA> 由此可见 实际生成的代码量 为 683H 1667byte 但MessageBox弹出的值却是1997 byte,莫非让我碰到了一个masm32编译器的一个bug? 附源代码 |
|
汇编代码长度问题
多谢楼上,不过我更倾向于找到出现这问题的原因,:)程序早已完工 |
|
汇编代码长度问题
没有人碰到过?我用的是masm32 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值