于是从exe上的createprocess入手
![](http://imgsrc.baidu.com/forum/w%3D580/sign=baca819720738bd4c421b239918a876c/fd621a4c510fd9f9b754ab232b2dd42a2934a457.jpg)
CreateProcessA,od调试给断点
![](http://imgsrc.baidu.com/forum/w%3D580/sign=2b93e50985d4b31cf03c94b3b7d7276f/0cd6510fd9f9d72a0127ee57da2a2834359bbb57.jpg)
createprocess创建进程,createflag使用创建即挂起主线程,writeprocessmemory写进程内存,修改entrypoint
然后suspendthread唤醒主线程
在writeprocessmemory后dump SnailMail.RWG的内存下来
![](http://imgsrc.baidu.com/forum/w%3D580/sign=4c0d40aebd1c8701d6b6b2ee177e9e6e/4795d9f9d72a605947531f502634349b023bba57.jpg)
运行发现依然Error,这次可以给messagebox下断了
![](http://imgsrc.baidu.com/forum/w%3D580/sign=e8aa78668901a18bf0eb1247ae2e0761/cf63d72a6059252db754e34e3a9b033b5ab5b957.jpg)
来到这里,再看看堆栈,找到返回函数
![](http://imgsrc.baidu.com/forum/w%3D580/sign=d7624c7baf8b87d65042ab1737092860/c1b06059252dd42a4c4affe10d3b5bb5c8eab857.jpg)
cmp eax,801
jge 大于等于跳转
断点发现运行messagebox的call前eax=800
跟入前面的call看看