Sunday, September 30, 2007

Miracle revisited

In my previouse blog, Sharing a Miracle, I stated that a lot of people heard a beatifull music the day before sister E died. I was wrong. After confirm with friends, only the family members heard that, and non of my friends that I know directly heard that music.

Friday, September 28, 2007

Bubble problem solved!

Continue on yesterday's problem. It actually is not a capture problem. What happend is, first, some how I remove the initial start up delay, so I was capturing screen when bubble is just appearing (at that time bubble is transparent!).

The second problem is, I was not counting on the position of WOW window. Before patch 2.2.0 the window is always on top left corner of screen. After patch the window is centered, so my mouse (x,y) position is totally off.

Anyway another bug resolved.

Thursday, September 27, 2007

Screen capture horror

Just found fisher got problem recognizing the blubber on light waters. It could miss 60% of the time.

The problem appears to be, when capture the screen with my current code, the blubber turned to partial transparent. If I do it with ASP.NET code, the capture was correct, so I think the problem happens when I convert the captured image to actual data. I am still not very sure yet, so I will try again today to see what caused this problem.

Yes, when capturing using .NET application with the same function calls, the image is correct, the only different part is I am saving the image with .NET bitmap saving code. And the image is also correct is I use print screen. So the only possibility might be that when I call GetDIBBits, it convert the transparency stuff onto the raw data and passed it to me, resulting in image recognizing errors.

Wednesday, September 26, 2007

WOW 2.2.0 patch status

Well, this patch didn't change too much and Fisher is already online.

However fighter has some problems. Beside some of the recently added features, I have forgotten most of the method I used to re-discover offsets. Yesterday I released fighter, but after the release found it has some strange problems with running way points. It keep running back and forth. I have to go to bed because I got a full load of work (at my day job) today. This morning I get up early and finally found that I left some debug code uncommented and that is creating a huge performance penalty, which delays the way point detection and cause the toon to over shoot :-)

Well, I will do some more check tonight and hopefully release it soon.

Tuesday, September 25, 2007

MSVCR71.dll missing and WOW patch 2.2.0

First, after I install Vista and tried to run zoloFighter and zoloFisher, I found out that I didn't include msvcr71.dll with my distributions. So basically if someone is not a developer or don't have the version of VC++ I used to compile the program, they can't run them (will get dll missing message, or long delays when trying to start WOW via the lunch button).

So sorry to all who has tried and failed. I will add that dll in the next release, and since there is a patch going on today, possibly the next release will be today.

Second, WOW finally patched. I am a bit scared since some recent offsets I got is not so easy to re-discover. Let's hope today's update is an easy one :-)

Monday, September 24, 2007

Vista woos

Installed Vista, looks pretty. Bot does not work off hand.

I didn't install WOW on vista yet, too much time. What I did try is to lunch a program using zoloRunAs and see if it could be lunched. I tried to lunch notepad.exe, and right after the enter key the message "Access denied" showed up.

So more worked needed for Vista :-(

Anyway here are my first impressions on Vista:

1. Very pretty. Everything from desktop to minesweeper got a cool look and feel. I am impressed.
2. Not so user friendly. I had an hard time to find out how to customize my desktop, how to get my computer to show up. And when exploring files, the top bar that used to show file path in XP are now showing an URL ...
3. Annoying security. Every time you try to adjust some settings (i.e, lunch control panel etc), a window pop up and ask for my permission. I mean, can't Microsoft just do a memory check sum and figure out it is the original windows utility I am lunching??!! It is getting annoying after a while.

Friday, September 21, 2007

WOW accounting again

A few days back I did an analysis on how much money I can earn by botting, the result is about 10g per hour.

Yesterday I did it again at another location, with mobs at much lower level than me. I sold about 20g of vendor trash in 1 hour, and not counting the herbs (which will be used for dungeon run) and other stuff I intend to keep.

So I guess how much you earn can be rather different depend on place. I always thought Blizzard will balance out different places (i.e, mobs that don't drop cash will drop good vendor trashes to match up), apparently not always true. No one can really balance out everything, so just keep searching for the best places.

Thursday, September 20, 2007

Rich and poor

I don't have much time, need to bot and prepare for Friday night's dungeon run. Here is my random thoughts of the day.

I just realized that even poor people in US today are living much better than rich guys 200 years ago. Here are some examples:

1. Social security make it fail safe. If those old rich guys did bad investments, they could broke and die in hunger. Not possible today (Unless the poor guy spend all SS money on alcohol).
2. Air condition, running water, sanitation system. Unheard of by the rich guys 200 years ago. Even king of France has to cover poop smell with fragrance.
3. Knowledge base. Now every poor guy can use free internet/books in public libraries and give them selfs a good education. I did that while working as a waiter to get my college money.
4. Education is much easier to get. Elementary school, high schools are free and waiter/waitress money can get you through college. Before only the wealthiest man can afford that.

All that said, I am sure 99% of us will rather be a norm or even poor man at our time than to be a king and have to live without AC and all the other convinces and worry about invasions from barbarians in the middle ages.

So if 99% of us are better than kings, why so complains?

Wednesday, September 19, 2007

Blogger's digest?

It was real fun to read other blogs, as my recent visit to iron realms and found some very good links. However not every day they have great ones, so it will be a great idea to have a blogger's digest so we can just visit each day and find the best of them instead of need to go to each blogger's site and read.

Tuesday, September 18, 2007

Money rate

I did a rough calculation about how much gold I made when boting in not-so-hot areas and sales all to vendor. it is about 20 gold for 2 hours. In that rate if a player bot 6 hour a day, it will take him about 3 month to get an epic flying mount, and that is $45 for 5000g.

Monday, September 17, 2007

Safe botting

Safe boting in WOW (and all other games) requires 2 things. First of course is a bot that is safe. For a bot to be safe, it must limit the privilege of WOW, so WOW can't check on the bot program, and it must NOT modify the game in anyway (injecting, call trapping etc).

For zolo fisher and fighter, I lunch WOW as guest so it can't check any other programs running under administrator privilege, and another standard windows privilege safe guard so if the user forget to do the first (i.e starts WOW first), WOW only got a small window of chance of catching it.

The second one is mainly on the user. He/she must take caution while boting, for example, don't bot in populated areas, don't bot in areas where quest items drop, or the mobs them selfs are quest items (Players will be real annoyed if they have to delay their quest due to bots). Also don't be greedy and sale all your loots/fish on AH. No player crazy enough will fish 12 hours and sale 20 stacks of stonescales (maybe there are but I am sure they will be 1 in a million).

Sunday, September 16, 2007

Difference of windows

When I created the bot, to make it max secure, I launch WOW on guest account. This way even my security is broken, WOW still can't check anything (except programs that also run on guest account).

However I just found out today, on international version of windows, Guest account are called different names! For example, on German version, Guest is called Gas, and my luncher failed to lunch WOW because of that.

Well now I know and I will implement a fix :-)

Just want to share with you all.

Saturday, September 15, 2007

Sharing a Miracle

This has nothing to do with WOW/bot or hacking, but a real life miracle.

One of the sisters in our church, E, who is a friend with several of my friends, died last week due to cancer. She was diagnosed 6 month ago and has combating the cancer since. 2 days before she die, she had a dream that Jesus is coming to take her on a boat. And at some point after that (I forget if it is before or after she dies), when a group of friends and family members was at the home, they all hear a beautiful music. At the time they thought the radio was on and checked downstairs, can't find the source.

Just want to share. I was not there but I have heard this from 2 of my friends who was there now. They are trying to reproduce the music, if they got it reproduced, I will put on a website somewhere.

Friday, September 14, 2007

bindings for Paladin

Some user requested for a paladin bindings file, and his fighting sequence. I will make a bindings_paladin.cfg base on that and release to the public. Finally a paladin profile.

Thursday, September 13, 2007

Combat log, finally!

Well, after yesterday's total crash (I followed on some dead lead and went real deep), I almost give up. The good news is I still got several solid leads from hours of analyzing WOW.exe's disassembly (the bad news is I am not a very organized person, as you can see my website is a total mess), and I forget where I got them lol.

So anyway, I was able to find some relations from those solid leads, and I got a working version that works on both mine and my friend's machine :-).

Appears there is no static route to trace to the memory that contain the links to the display strings. Blizzard appears to using a rotation method, and there was one dynamically allocated address that contains the pointer to the starting link base on some selection. (maybe it is one DMA pointer that is used by hardware, so Blizzard has to rotate). I just used what ever blizzard uses to determine if the pointer is currently point to messages, and use that instead.

What that means is, there is a slight chance that when you call wowGetCombatMsgs(), it might return nothing even thought there are logs. In that case just call again and you might get them (but 99% of time you get stuff).

The new release is at
now I will go on to improve the scripts. Also need to change some profiles. I got complains that some people don't like see code on top of profiles, that gives them headaches.

Wednesday, September 12, 2007

Need to re-trace combat log offsets

Well. There were warning signs and I ignored them. What happened is I didn't have a deep enough snapshot of the system, and I got fooled by the stack analysis.

You can get information about who is calling, what parameters was passed, but only an estimate. I got too confident about the tool, and only found out yesterday that the trace is not accurate. This is mostly likely caused by the fact that the calling convention can be different and no one can really guess it (the function call can either be pass parameter on stack or register, or both, so how do you guess where is the first argument, and where is the return address? The answer is no way except for the last call which the stack pointer is in ebx.

Also something happened today, either the spell checker is not working or I am not making spelling mistakes, which is unlikely, this window is not showing me any bad spellings.

Edit: I changed browser to Firefox, and there come the spelling checker :-) So another reason to choose Firefox over IE.

Monday, September 10, 2007

One Busy Weekend

Last weekend was packed. A sport event that supposed to last a morning turned to a full day event. Our sucking team that finished number one from the rear last year, but this year we finished 11th amount 48 teams, so the race lasted till afternoon and everyone was exhausted.

Sunday we had a birthday party for a close family member, at the evening everyone was tired because there are very small kids that needs attention. Overall it is a great weekend.

I did find some extra time during the off peak hours to do some more finding on combat log offsets. I got some better lead this time and was amazed to find how deep the combat log is compare to all other offsets. Right now it is about 6 to 7 levels to the more obvious blocks, and tracking down from that deep is not easy because those offsets keep changing and I got confused easily :-)

Friday, September 7, 2007

Combat logs again

After a bunch of tracing last night (and huge wasted of time tracing what turned out to be printf code), I got a non-conclusive result.

Yes I found the list that contain the pointers to the combat message strings, found the position contain current combat message count, however it was not firm because the address of address that point to all the good stuff can't be confirmed in the disassembly.

Anyway, I was still happy because it works on my account, I was ready to release, than I thought, this happens before, let's try on my friends computer first. Sure enough, it didn't work on his computer.

So, I will be back tonight or tomorrow and try again.

Thursday, September 6, 2007

Bigger is not always better

Today I went to site by the way) and saw some comment about America is a democracy, so here is my comment, has nothing to do with hacking World of Warcraft (got stuck on combat log lol)

America is not a democracy, it is a democratic republic. The difference is democracy is basically mob rule, it will die once people notice they can vote them selfs gifts (too sad America is near that point now). A democratic republic is a democracy governed by constitution and laws, so it last a bit longer :-)

Initially I thought the bigger the better, so the stronger the central (or federal) government, the stronger the country. Well, that is to a certain extent. The bigger the government, the further it is to the people and the lesser impact to them if they mess up. And that is when you see defense departments spend $10k on shipping $.2 screws to bases (and didn't notice it for years), Big Government schools fiercely against school choices, New Orleans Governor run away from storms (the best he did was plea for help, other than that no action), and Bush sends Billions of dollars to him without thinking (that is enough for everyone in there to buy a house, yet New Orleans still have not fully recovered).

States and local government should take full responsibility of their people, simply because they know better. There should not be any federal grants to any local state. This way no one will be wasting one million to paint an airplane. When money is handled locally, they will try to conserve, because it is their money :-)

Any organization, government or private, can't be too big. At certain size they operate most efficient, and if bigger, it is just pure waste.

Wednesday, September 5, 2007

combat logs

Yesterday I spend 2 hours cracking combat logs. I was so close than the power went down and my full notepad of notes are all lost :-)

Anyway for some reason the combat logs are much harder than the ordinary logs, the formats are totally different. It might take some good cracking to get it. I don't have much time every day for this second job of mine (yes it was fun at the beginning but now it feels like a job, similar to my other free ware projects). It can be very tiring especially when wife is there trying to haste you up.

So instead I posted the javascript API on the zolo fighter forum
let's hope I can get the combat log soon, so I can resume my normal life.

Tuesday, September 4, 2007

Recent activities.

It is not so polite to not letting your users know what you are doing.
For example, Blizzard never tells us what they are doing when they do server maintenance. They didn't post any updates recently and it still takes 5 to 6 hours to reboot the servers (I notice once they brought it right up).
As an engineer, I know sometimes after an update unexpected things happen and you just have to take time to deal with the mysteries, but when no updates are out and it still takes that long? Just a little explanation on their part can ease a lot of pain on the user side.

So I decided to post my activities often, even if I didn't do much.

I have promised some users to post all the methods and properties used in java script, I haven't done it yet. The reason? I always got distracted. Last week I was pushing out remote server, fixed several targeting bugs and added multiple ghost waypoints. This week? Well I had added pet happiness, and trying to add combat log.

Combat log is important, it tells you if enemy is dodging (important for fighters), if some one is healing you (need to say TY). I watched some one heal me while I was boting, so I decided to put combat log on a high priority.

I have tried to get combat log before, while I was implementing whisper service. The problem is, one of my tools for hacking is flawed, and it didn't find any trace of combat log so i thought Blizzard just pushed it on to the video cards memory and forget about it. During the long weekend when I did a review of my program, wala here goes combat log.

Anyway, the problem with the long weekend is, it is packed. I had to do some outdoor activity (kept secret, I will only say it is about some kind of group racing), a full party and almost a full day of dungeon run with old friends.

So assuming wife won't argo, I will try to implement combat log, pet happiness and then publish the new javascript api sets.